home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / gnustuff / tos / gnulib / libsrc98.zoo / Changelo < prev    next >
Encoding:
Text File  |  1994-03-29  |  159.0 KB  |  4,949 lines

  1. previous change history muddled at best (i can track things in my
  2. RCS files, but i did'nt keep a log).
  3.  
  4. changes since first  release of library with TOS gcc v1.35
  5. in cronologically increasing order:
  6.  
  7. ChangeLog:: ++jrb
  8.     New file.
  9.  
  10. all makefiles:: ++jrb
  11.     adjusted, CMakefile.* now add -fstrength-reduce to CFLAGS
  12.  
  13. bcopy.s:: ++jrb
  14.     replaces bcopy.c -- a better mouse trap :-)
  15.     bcopy.s has lbcopy() entry point too.
  16.     bcopy.c moved to notused/
  17.  
  18. bcmp.c, bzero.c:: ++jrb
  19.     added lbXX() entry points
  20.     this makes lbcmp.c & lbzero.c redundant moved to notused/
  21.  
  22. strchr,strrchr:: ++jrb
  23.     now have entry points for index()/rindex()
  24.     index.c & rindex.c moved to notused/
  25.  
  26. unlink.c:: ++jrb
  27.     now has entry point for remove()
  28.     remove.c moved to notused/
  29.  
  30. atof.c:: ++jrb
  31.     redefined HUGE (to be ieee inf)
  32.     HUGE defined in this way in <pmluser.h> (aka <math.h>) too now.
  33.  
  34. ctime.c:: ++jrb
  35.     cleaned up some ^M's in there
  36.  
  37. dflonum.c:: ++jrb
  38.     bug fix: defn of XXADDL was wrong (when -O, there were not
  39.     enough constraints to let gcc know that the `zero' pointer
  40.     was being decremented, so that it would re-load (XXADDL is used
  41.     in a loop, this made it worse, since it just assumed it was
  42.     constant and moved the init out of the loop).
  43.     lot of constraints cleanup here and in flonum.h
  44.     redundant defined commented out.
  45.  
  46.  
  47. dirent.c:: ++jrb
  48.     moved mydat, olddta into opendir()
  49.     cleanups (i am trying to put explicit casts for mallocs etc
  50.     for the sake of compilers that dont understand protos).
  51.  
  52. __DEFAULT_BUFSIZ__ :: ++jrb
  53.     added an extern size_t  __DEFAULT_BUFSIZ__ that is normally set
  54.     to BUFSIZ, but you can override it at any point, and get default
  55.     buffers of that size for buffered i/o (a cheap way to have large
  56.     buffers, instead of putting setvbuf()'s all over the place, 
  57.     but its ansi non-compatible).
  58.     changes in fxxx.c files refplect this addition.
  59.  
  60. fputc.c:: ++jrb
  61.     put in support for line buffered streams
  62.     in main.c, stdout is now initialized line buffered
  63.     in stdio.h _IOLBF was not unique, changed that.
  64.  
  65. getlogin.c:: ++jrb
  66.     logname is now dynamically allocated
  67.     the length is no longer static (used alloca)
  68.  
  69. getpw.c:: ++jrb
  70.     file always open in text mode should _binmode(1) be in effect
  71.  
  72. lseek.c:: ++jrb
  73.     now incorporates BSD semantics too, where if you seek past
  74.     eof you get a zero filled hole.
  75.  
  76. ltoa.c:: ++jrb
  77.     added strrev proto ifdef __STRICT_ANSI__
  78.     (string.h has the ifdef to make it kosher)
  79.  
  80. main:: ++jrb
  81.     dynamisized _at_exit []
  82.     this gets rid of ATEXIT_MAX (ansi says should be at least 32,
  83.     hopefully we'll meet that and more)
  84.     the return type of atexit() was opposite -- adjusted
  85.     this also required adjustment in tmpfile.c
  86.     stdout is now truely line buffered
  87.  
  88. malloc.c:: ++jrb
  89.     added 
  90.     _malloczero() that set/unsets flag to tell malloc to zero out blocks
  91.         useful with TOS 1.4 where TPA clearing above BSS may be
  92.         turned off. (see new util toglclr.ttp). Some badly
  93.         written programs (gcc-ar for instance) assume malloc
  94.         clears.
  95.     _mallocChunkSize() lets you tune min chunk size. 
  96.        CAUTION: use _mallocChunkSize() to tailor to your environment,
  97.             do not make the default too large, as the compiler
  98.             gets screwed on a 1M machine otherwise (stack/heap clash)
  99.  
  100.     added entry points for malloc/realloc etc
  101.  
  102. printf.c:: ++jrb
  103.     added support for `#' flag
  104.     added `h' flag
  105.  
  106. prtfld.c:: ++jrb
  107.     needed <string.h>
  108.  
  109. qsort.c:: ++jrb
  110.     totally replaced with one from dlib
  111.     the one from dlibs needed quite a few fixes.
  112.  
  113. read.c, write.c:: ++jrb
  114.     added entry points for read()/write() when not __MSHORT__
  115.  
  116. sbrk.c:: ++jrb
  117.     added entry point for sbrk()
  118.  
  119. setjmp.s:: ++jrb
  120.     was bug ridden (thanks pekka!)
  121.  
  122. strcat.c, strncat.c:: ++jrb
  123.     moved check for null src to outer level
  124.  
  125. system.c:: ++jrb
  126.     cleanups
  127.  
  128. tmpfile.c:
  129.     everything dynamacized
  130.     the atexit fn delete_tmpfile() now closes before removing
  131.       this needed new data str.
  132.  
  133. tmpnam.c:: ++jrb
  134.     replaced sprintf with strcpy/strcat
  135.  
  136. unx2dos.c:: ++jrb
  137.     made the file name mapping functions more flex (thanks dale for
  138.     suggesting the idea). the mapping functions now go through
  139.     settable (via new function fnmapfunc()) function pointers to
  140.     call the mapping routines. these pointers are by default
  141.     initialized to _unx2dos/_dos2unx that were the old functions.
  142.  
  143. scanf.c:: ++jrb
  144.     float conversions (%ef) were severly broken. fixed.
  145.  
  146.  
  147. vfork.c:: ers
  148. New functions vfork() and wait() added.
  149.  
  150. mktemp.c:: ers
  151. Fixed ranges and handling of multiple "mktemp"'s; because of a typo, the
  152. old version tried only one number, and if the file existed it gave up.
  153.  
  154. localtime.c:: ers
  155. Added global variable timezone to hold timezone offset; also function
  156. tzset() to initialize it. (These seem common in Unixes).
  157. Fixed bug in calculation of timezone offset (EST5EDT was being translated
  158. as EST5:05EDT).
  159.  
  160. system.c:: ers
  161. Added I/O redirection, using vfork().
  162.  
  163. read.c:: ers 
  164. Fixed some bugs due to evaluation of arguments in macro expansions.
  165.  
  166. stat.c:: ers
  167. Fixed up values returned for st_mode to be consistent with chmod(); also
  168. added a check for executable files, so most regular files get permissions
  169. rw-rw-rw- instead of rwxrwxrwx.
  170. Also added a work around to TOS's refusal to find "." or ".." in an
  171. Fsfirst without wildcards.
  172.  
  173. rename.c:: ers
  174. Changed so that rename(old, new) fails if "new" already exists. H & S
  175. claims this is implementation defined, and this way seems more intuitive
  176. to me. (If a later draft of the pANS changed this, let me know).
  177.  
  178. access.c:: ers
  179. Removed the call to _unx2dos (it wasn't necessary, since stat calls _unx2dos).
  180.  
  181. write.c:: ers
  182. Put def'n of __col_pos here instead of in read.c (to avoid pulling in
  183. read() unless necessary -- write always gets used).
  184.  
  185. sgtty.c:: ers
  186. New functions stty() and gtty() added for compatibility with old code
  187. (e.g. curses).
  188.  
  189. varargs.h, stdargs.h:: ers
  190. Added some checks to guard against both of these being included.
  191.  
  192. osbind.h:: ers
  193. Fixed defn for Mshrink.
  194. Fixed defn of PE_CBASEPAGE.
  195. Moved defn of struct _dta to here from stat.h.
  196.  
  197. types.h:: ers
  198. Removed #include of <time.h>, added a guarded definition for
  199. time_t.
  200.  
  201. time.h:: ers
  202. Added a guard to typedef of time_t.
  203.  
  204. stat.h:: ers
  205. Moved defn of struct _dta to osbind.h, where it belongs. Made a "real"
  206. definition for S_IFREG.
  207.  
  208.  
  209. NEW LIBRARY curses.olb:: ers
  210. . Combines BSD curses with Fred Fish's PD termcap
  211. library. Everything seems pretty standard. I made the following
  212. enhancements:
  213.  
  214. If no termcap file can be found, the Atari ST's built in VT52 is assumed.
  215.  
  216. A replacement for console_read_byte() is provided that allows binding of
  217. macros to keys with the call:
  218.     console_set_key(int scancode, char *r, char *s, char *a)
  219. where "scancode" is the key scan code, "r" is the string to be sent when
  220. the key is pressed without any shift keys, "s" the string to be sent when
  221. SHIFT+key is pressed, and "a" the string to be sent when ALT+key is
  222. pressed. A NULL string leaves the previous key binding unchanged; an
  223. empty string "" erases any previous key binding.
  224. The new console_read_byte() is slower and takes more memory, so it only
  225. gets linked if -lcurses (or -lcurses16) is used and there is a call to
  226. console_set_key().
  227.  
  228. New header files <curses.h> and <keycodes.h> are provided. <keycodes.h>
  229. has the prototype for console_set_key(), and has various scan codes
  230. provided as constants (e.g. F_1 is the scan code for the f1 key).
  231.  
  232. fpprint.c: ++jrb
  233.     replaced decfrexp with a hopefully  better one
  234.     added rounding at prec+1 (output certainly looks nicer now)
  235.  
  236. scanf.c, printf.c, mktemp.c: ++jrb
  237.     replaced expressions of the form
  238.         n * 10    [n a integer]
  239.     with    TEN_MUL(n) == (((n) << 2) + n) << 1 
  240.             10*n == 2(4n + n)
  241.  
  242. atof.c:: ++jrb
  243.     added ansi func strtod, atof now calls this.
  244.     added d|D as valid chars for 'E' notation as per ansi.
  245.     added proto for strtod to stdlib.h
  246.     corrected bugs in counting total exp.
  247.     now passes its builtin test (which is biased!)
  248.     pulled out old dummy strtod #define from stdlib.h
  249.  
  250. close.c:: ers
  251. Fixed bug with isatty status not being properly reset unless an error
  252. occured.
  253.  
  254. unx2dos.c:: ers
  255. Added a check for two slashes in a row (a common error which can really
  256. make GEMDOS confused) and for a directory name with a trailing slash
  257. (Unix apparently accepts access("DIR/",0) as well as access("DIR",0)).
  258.  
  259. curses.h:: ers
  260. Fixed definition of strlen to agree with definition in <string.h>
  261. (namely size_t strlen(const char *)).
  262.  
  263. osbind.h:: ers
  264. Changed definitions of Fcreate, Fopen, and Fdup to cast result to long
  265. instead of short. This is because file handles for CON:, AUX:, and PRN:
  266. are word negative but not long negative, whereas errors are long negative;
  267. casting to short makes Fopen("CON:",2) appear to give an error.
  268.  
  269. getcwd.c:: ers
  270. The GCC is too clever with this; I had to add the keyword 'volatile' to
  271. an array to stop it from optimizing away the test in:
  272. path[2] = '\0'; Dgetpath(path, 0); if (!path[2]) ...
  273.  
  274. fflush.c:: ers
  275. Changed test for buffer full from (fp->_cnt) to (fp->_cnt > 0), since
  276. when reading fp->_cnt becomes < 0 at EOF, and the subsequent
  277. lseek(file,-fp->_cnt,1) call will (now) cause the file to grow.
  278.  
  279. main.c:: ++jrb
  280.     if stdout !isatty then make it a full buffered stream rather
  281.     than a line buffered stream;
  282.  
  283. fclose.c:: ++jrb
  284.     cosmetic changes.
  285.  
  286. fopen.c:: ++jrb
  287.     freopen() was foobared (see comments there). new coding.
  288.  
  289. setbuf.c :: ++jrb
  290.     added bezerkly setlinebuf() and a few asserts.
  291.  
  292. include/unixlib.h:: ++jrb
  293.     added proto for setlinebuf()
  294.  
  295. include/assert.h:: ++jrb
  296.     changed assert #def'n for !__STDC__ compilers that don't
  297.     do token pasting.
  298.  
  299. fpprint.c:: ++jrb
  300.     brought back the old version(sigh!)
  301.     added rounding at prec
  302.     This has to be redone. Due to prec. loss for numbers near 1 or near 10
  303.     it prints stuff like "0.9:00e0" etc.
  304.     now that modf() etc work almost exactly, we can re-code using those.
  305.  
  306. Special thanks to peter housel who posted his x86 based floating
  307. lib. many of the alg used in the now improved floating support
  308. are fashioned after peters alg.
  309.  
  310. norm.c:: ++jrb
  311.     new file, normalize a ieee double
  312.  
  313. atof.c:: ++jrb
  314.     totally re-worked, now its much more like i wanted it to be.
  315.     better test
  316.  
  317. ldexp.c, modf.c, frexp.c:: ++jrb
  318.     totally reworked. ldexp now always takes an int as it should have,
  319.     so sldexp is no longer need for shortlib. (see #ifdefs in ldexp.c)
  320.     better tests (see also pml/envtest)
  321.     the combined test for ldexp/frexp is in frexp.c
  322.  
  323. sldexp.c:: ++jrb
  324.     moved to notused/sdlexp.c
  325.  
  326. *akefile.16:: ++jrb
  327.     took out sldexp.o target from all of them
  328.  
  329. *akefile*:: ++jrb
  330.     added target norm.o
  331.  
  332. doprnt.c, sprintf.c, fprintf.c:: ++jrb
  333.     Finally, adopted berkley's PD doprnt(). It does things right
  334.     and much better than kludges i was trying to get especially
  335.     the fpprint right (i still cannot come up with a alg for
  336.     decrexp that does not loose badly on prec). appropriate
  337.     adjustments made to sprintf.c and fprintf.c.
  338.  
  339. fpprint.c, printf.c, prtfld.c:: ++jrb
  340.     moved to notused/ because of above.
  341.  
  342. *akefile:: ++jrb
  343.     adjusted to above two changes.
  344.  
  345. varargs.h, stdarg.h:: ++jrb
  346.     fixed bugs when va_arg is expanded with type 'char'
  347.     thanks to dale schumacher for detecting this.
  348.  
  349. *makefile.*:: ers
  350.     added abs.o (how did we miss this one???)
  351.     fixed typo in makefile.16
  352.  
  353. qsort.c:: ers
  354.     added cast to an argument (needed for -mshort)
  355.  
  356. vfork.c:: ers
  357.     changed so that child process uses the same stack as the parent; this
  358.     is what Un*x does, and saves memory.
  359.     fixed wait() to be Un*x compatible.
  360.  
  361. spawnve.c:: ers
  362.     made storage for environment+args dynamic; gnu make was losing on
  363.     big files (e.g. nethack) because 2K wasn't enough.
  364.  
  365. system.c:: ers
  366.     changed call to wait to agree with changes above.
  367.  
  368. findfile.c:: ers
  369.     fixed search for extensions (.ttp, .prg, etc) so that it works with
  370.     _unixmode > 2.
  371.  
  372. doprnt.c,scanf.c:: ers
  373.     changed __NO_FLOATS__ to __NO_FLOAT__ to agree with makefiles.
  374.  
  375. qsort.c:: ++jrb
  376.     merged in minix changes (i have to support both!)
  377.     as per ers change above, adjust arg for _wqsort()and _lqsort() too.
  378.     additional assumption: if SHORT alignment is desired then
  379.     it is ok to align a long at a short boundary too. this seems
  380.     to be generally true (of course someone will come up with a
  381.     weird machine where it is untrue - maybe intel!).
  382.     To do : define a threshold and do insertion sort below threshold
  383.         remove recursion
  384.  
  385. qsort.c :: ++jrb
  386.     Finally a qsort that kicks ass! (and works :-).
  387.     the old one moved to notused/dl_qsort.c
  388.     qsort.c: i started with doug smidth's version,
  389.     first hacked it to handle SIZE sized items (his was ints only)
  390.     the performance sucked, so i totally rewamped the algorithm in
  391.     qsort(), following Sedgewick and suggestions in K V3.
  392.  
  393. dflonum.c:: ++jrb
  394.     House cleaning.
  395.  
  396. fixnum.s::  ++jrb
  397.     Merged in kai-uwe's code (thanks kai).
  398.     Fixed a few bugs. Cleanup.
  399.  
  400. popen.c:: ++jrb
  401.     Added kau-uwe's popen/pclose with appropriate mods for this library.
  402.     The basic difference was that this libraries system() already did
  403.     re-direction, so we take advantage of that fact to avoid doing
  404.     re-direction in popen/pclose. Thanks again kai-uwe.
  405.  
  406. stdio.h:: ++jrb
  407.     added protos for popen()/pclose() (in non strict ansi part).
  408.  
  409. *akefile:: ++jrb
  410.     reflect the addition of popen.c
  411.  
  412. dirent.c:: ers
  413.     fixed opendir() to work correctly with non-existent directories.
  414.     Also made seekdir() actually do some work.
  415.  
  416. sys/dir.h:: ers
  417.     took advantage of undocumented feature of dirent.c, namely that
  418.     d->reclen contains the length of the name.
  419.  
  420. fixnum.s:: ++jrb
  421.     kai-uwe's fixnum has problem. pulled it out and re-instated the
  422.     old one. will look into whats going on.
  423.  
  424. fixnum.s:: ++jrb
  425.     fixed bugs in kai's version and put it back (it is much more
  426.     efficient).
  427.  
  428. fcntl.h, close.c, open.c, isatty.c, fhandle.c:: ++jrb
  429.     replaced char __handle_stat[] with a open files status structure
  430.     __open_stat[], that keeps more info around about open files,
  431.     enabling impl of fstat(). later more fields can be added as required.
  432.     Also Note: while making these changes, took care of the fact that
  433.     the smallest valid gemdos handle is -3 and not 0. See
  434.     __SMALLEST_VALID_HANDLE and __OPEN_INDEX macros in <fcntl.h>
  435.  
  436. stat.c, stat.h :: ++jrb
  437.     added fstat(int, struct stat *)
  438.  
  439. scanf.c :: ++jrb
  440.     floating conversion uses our super atof now after collecting the
  441.     input number as a string.
  442.  
  443. popen.c:: ers
  444.     fixed up popen(cmd, "r") calls to redirect properly; also they
  445.     return NULL if cmd fails (return code < 0).
  446.  
  447. vfork.c:: ers
  448.     changed to reflect the fact that exit codes are really short on
  449.     the ST.
  450.  
  451. gnulib2.c:: ++jrb
  452.     new file. contains long long support for gcc, and a few funcs
  453.     that moved over from dflonum.
  454.  
  455. *akefile*:: ++jrb
  456.     added gnulib2 targets
  457.  
  458. close.c:: ers
  459.     checked that __open_stat.filename was non-null before freeing
  460.  
  461. malloc.c:: ers
  462.     allowed free(0) to do nothing (I think ANSI wants this)
  463.  
  464. open.c:: ers
  465.     added _canonical() function to get full pathname of a file, so
  466.     fstat() can work after a chdir().
  467.  
  468. textio.c:: ers
  469.     new functions to read/write text files doing nl conversion
  470.     (this seems to crop up a lot, especially in GNU stuff)
  471.  
  472. localtime.c:: ers
  473.     fixed so that days have 24 hours, not 23 :-)
  474.  
  475. strdup.c:: ers
  476.     new function strdup() added (GNU and system V both use it)
  477.  
  478. unlink.c:: ers
  479.     changed so unlink of an open file works (well, usually)
  480.  
  481. dup.c:: ers
  482.     changed dup2 so that it closes the original file, and returns
  483.     the file descriptor on success
  484.  
  485. unlink.c:: ers
  486.     deleted debugging print.
  487.  
  488. traps.c:: ++jrb
  489.     made changes corresponding to the osbind.h changes (stricter
  490.     constraints so that ea is evaluated into reggies before we
  491.     change the stack pointer from under gcc's nose).
  492.  
  493. *akefile.32:: ++jrb
  494.     removed spurious trap-X.o targets (they should only be in *akefile.16)
  495.  
  496. crt0.s:: ers
  497.     removed unneeded declaration of _main (crt0 calls __main)
  498.  
  499. ftw.c:: ers
  500.     new function (from System V) to do file tree walks
  501.  
  502. minimal.h:: ers
  503.     header file for programs that don't use stdio or any other "high
  504.     level" stuff (basically programs that do all OS stuff directly
  505.     through osbind.h). This results in a substantially smaller
  506.     executable.
  507.  
  508. linea.h:: ers
  509.     a couple of cleanups of type mismatches. TODO: make linea0()
  510.     a statement expression a la osbind.h (after all, it returns a
  511.     useful value).
  512.  
  513. dflonum.c:: ++jrb
  514.     fix as per P.Deutch net article.
  515.  
  516. spawnve.c:: ers
  517.     made the handling of extended arguments compatible with the
  518.     new GEMDOS standard.
  519.  
  520. linea.h:: ++jrb
  521.     replaced it with a new more complete version. supports inline
  522.     linea bindings (inline is default unless __NO_INLINE__ if #def'ed)
  523.  
  524. linea.c:: ++jrb
  525.     support file for functional form of linea bindings.
  526.  
  527. crt0.s, crtinit.c:: ers
  528.     replaces crt0.s. NOTE: compatible with old MWC style startup and
  529.     the new atari standard, except it does not check for
  530.     command tail length == 127 for compatibility with older stuff
  531.     and until shells are revised.
  532.  
  533. crt0.c:: ++jrb
  534.     combined functionality of crt0.s/crtinit.c into one file.
  535.  
  536. *akefile:: ++jrb
  537.     adjustments for crt0.c and line.c
  538.  
  539. div.cpp:: ++jrb
  540.     new file, implement ldiv() and div()
  541.     note: these may not be used if -fpcc-struct-return
  542.  
  543. div.c:: ++jrb
  544.     a more portable ldiv()/div() compat with -fpcc-struct-return too.
  545.     not used!
  546.  
  547. *akefile:: ++jrb
  548.     added targets for div.o
  549.  
  550. fgetc.c:: ++jrb
  551.     flush stdout before reading from stdin if stdin isatty and stdout is
  552.     line buffered (more berklix cloning).
  553.  
  554. fseek.c:: ++jrb
  555.     bux fix: <unixlib.h> was not #include'ed, as a result all the
  556.     lseek() calls were messing up on large files. Thanks to Bill Shroka
  557.     for finding this. (and thanks to him for giving the library the benfit
  558.     of doubt!)
  559.  
  560. findfile.c:: ers
  561.     added sanity check
  562.  
  563. vfork.c:: ers
  564.     added Mfree of environment. Also changed Makefiles to reflect
  565.     necessity of a frame pointer
  566.  
  567. system.c:: ers
  568.     replaced calls to open() and close() with calls to Fopen() and
  569.     Fclose(), to avoid problems with child process malloc'ing and
  570.     free'ing
  571.  
  572. *makefile.*:: ers
  573.     used GNU Make's include feature to seperate common 16 and 32
  574.     bit stuff
  575.  
  576. unx2dos, support.h:: ++jrb
  577.     adjusted types of first arg to mapping functions. should be 
  578.     `const char *'
  579.  
  580. strchr, strpbrk, strrchr, strstr:: ++jrb
  581.     cast return type to (char *)
  582.  
  583. memchr:: ++jrb
  584.     cast return type to (void *)
  585.  
  586. getopt,strtol:: ++jrb
  587.     cast assignments
  588.  
  589. getpw.c:: ++jrb
  590.     forward decl of nextent()
  591.  
  592. strtol.c:: ++jrb
  593.     replacement function, adapted from norbert schelenkar's stdio
  594.     this detects overflow as req by ansi
  595.  
  596. strtoul.c:: ++jrb
  597.     replacement function, adapted from norbert schelenkar's stdio
  598.     this detects overflow as req by ansi. new file.
  599.  
  600. doprnt.c:: ++jrb
  601.     eff hacks. (as far as i can tell i did'nt break it!)
  602.     calls fputc() directly
  603.     keith bostics type cleanup inc.
  604.  
  605. fprintf.c, sprintf.c:: ++jrb
  606.     doprint() does'nt need put fn arg any more.
  607.     sprintf    - fake a file pointer so that doprint can call fputc()
  608.     new flag _IOSTRING in stdio.h to support this.
  609.  
  610. filbuf.c:: ++jrb
  611.     support function for getc(). getc() is now half way efficient
  612.     (the old dlibs fgetc sucked). getc now a macro.
  613.     new file
  614.  
  615. fgetc.c:: ++jrb
  616.     functional form of getc.
  617.  
  618. fungetc.c:: ++jrb
  619.     new file, broken out of old fgetc.c
  620.  
  621. getbuf.c:: ++jrb
  622.     new file, broken out of old fgetc.c
  623.  
  624. fopen.c, fdopen.c:: ++jrb
  625.     now call _getbuf() when file is opened rather than at first
  626.     read/wr.
  627.  
  628. main.c:: ++jrb
  629.     call _getbuf() for std streams.
  630.  
  631. fputc.c::
  632.     dont call _getbuf() any more
  633.  
  634. getw, gets.c, fgets.c:: ++jrb
  635.     use getc() instead of fgetc()
  636.  
  637. stdio.h: ++jrb
  638.     getc() now a macros
  639.     new flag _IOLOOKLF set when looking for lf across calls to
  640.     _filbuf(). doing all of the above does seems to help
  641.     performance.
  642.     new flag _IOSTRING to support string FILE's for sprintf and
  643.     friends.
  644.  
  645. fread.c:: ++jrb
  646.     dont call fflush(), instead use any buffered data.
  647.  
  648. *makefiles:: ++jrb
  649.     adjusted
  650.  
  651. filbuf.c:: ++jrb
  652.     improved translated processing. the copydown idea did'nt turn
  653.     out to be so hot.
  654.  
  655. crt0.c:: ++jrb
  656.     added __DEFAULT_BUFSIZ__ processing here (ala _stacksize). Now
  657.     __DEFAULT_BUFSIZ__ gets added to _stksize to try and make
  658.     library initialed alloca's a little bit safer. Note useage
  659.     of __DEFAULT_BUFSIZ__ has changed, now its more like
  660.     _stacksize where you declare it as a initialized global
  661.     ie: size_t __DEFAULT_BUFSIZ__ = <XXXX>L; (outside the scope of
  662.     any function). Also note: if BUFSIZ is changed in stdio.h then
  663.     that change must be reflected in crt0.c too. for obvious
  664.     reasons we dont #include <stdio.h> in crt0.c.
  665.  
  666. getbuf.c:: ++jrb
  667.     deleted initial __DEFAULT_BUFSIZ__ processing from here, and
  668.     made it extern.
  669.  
  670. random.c:: ++jrb
  671.     added for bsd compat. will try and work in the state stuff. for
  672.     now it is just a copy of rand() with types adjusted.
  673.  
  674. gnulib2.c:: ++jrb
  675.     fixed __floatdidf as per net article.
  676.  
  677. filbuf.c:: ++jrb
  678.     type adjustment for var `f'
  679.  
  680. fread.c:: ++jrb
  681.     - added missing _IORW at top
  682.     - if after consuming present buffer, the amount left to read
  683.     is < fp->_bsiz, then read fp->_bsiz into buffer and give it
  684.     bytes from there, instead of reading into user buffer. this
  685.     helps a *lot* with large buffers, and is not too shabby with
  686.     ordinary ones.
  687.  
  688. fseek.c:: ++jrb
  689.     rewrite: fseek() ,ftell() : give them some semblence of
  690.     efficiency, rather than flush on every instance. some of
  691.     the old dLibs stuff is really lacking in efficient use of
  692.     the buffered data.
  693.  
  694. fopen.c:: ++jrb
  695.     moved _getbuf() out of _fopen() into fopen(). This simplifies
  696.     freopen() and does'nt cause _fopen() called from freopen()
  697.     to allocate a buffer.
  698.  
  699. setbuf.c, setvbuf.c:: ++jrb
  700.     if _IOMYBUF then free buffer first, since we _getbuf() on open now.
  701.     if new discipline is _IONBF or new buffer NULL then use tiny
  702.     buffer fp->ch (this was a bug in the old version)
  703.  
  704. getbuf.c:: ++jrb
  705.     if line buffered, make _bsiz min(__DEFAULT__BUFSIZ__, BUFSIZ).
  706.  
  707. main.c:: ++jrb
  708.     move test for stdio re-directed  to before _getbuf(), so that
  709.     it does the right thing.
  710.  
  711. strtol.c:: ers
  712.     strtol() (and hence atoi()) weren't working at all, because
  713.     (short)LONG_MAX is a negative number.
  714.  
  715. doprnt.c:: ++jrb
  716.     in doprnt, ICONV compare number against 65535L instead of
  717.     USHRT_MAX. The problem was that when !mshort, this generated
  718.     a cmpl #-1,NUMBER as (unsigned short)~0 was promoted before
  719.     the compare. TODO: fix limit.h so that such things dont
  720.     kill you.
  721.  
  722. fclose.c,fflush.c,fopen.c,fread.c,fwrite.c::
  723. fdopen.c,filbuf.c,fputc.c,fseek.c, main.c :: ++jrb
  724.     the inplementation of update mode (w+, r+, r+w) was totally
  725.     screwed up. it worked till now by sheer luck, because the
  726.     buffers were being flushed and synced at evey fseek, ftell,
  727.     fwrite etc. Chnaged the menaing of _IORW to mean that a file
  728.     is open for update, and keep track of whether it was last
  729.     read or written by setting/resetting _IOREAD and _IOWRT as
  730.     appro (or clearing them both on a sync). This similar to 4.3
  731.     but not exactly the same.
  732.  
  733. fwrite.c:: ++jrb
  734.     make better use of buffer, as per other changes.
  735.  
  736. crt0.c:: ers
  737.     changed all "ints" into longs so that it compiles the same with
  738.     or without -mshort. moved definition of errno to main.c for the
  739.     same reason
  740.  
  741. stdio.h, fgetc.c, filbuf.c:: ers
  742.     ftell/fseek on text files were broken; when we stripped all the
  743.     carriage returns out of the input buffer, ftell had no way to
  744.     tell the real binary position. changed getc() to an inline
  745.     function which, like fgetc(), strips out the CR's as we go. this
  746.     simplifies filbuf a lot. also: no need to check for _IODEV, since
  747.     read() and write() already translate '\r' to '\n' where appropriate.
  748.  
  749. utime.c:: ers
  750.     added sanity checks
  751.  
  752. crt0.c:: ++jrb
  753.     fixed so that including the insufficient memory test does'nt
  754.     cause the initial gemdos stack to blow up on a 1040. initially set
  755.     the stack at hitpa, and then later set it to its final value.
  756.     a dummy routine introduced to set up sp, which in turn calls
  757.     the real startup routine (that was pushing too many registers
  758.     on the gemdos stack causing it to blow up).
  759.  
  760. crt0.c:: ++jrb
  761.     The (new) meaning of _stksize: (thanks to allan pratt for the feedback)
  762.  
  763.     _stksize            meaning
  764.       -1L        keep all of memory (except 8k at top) and do
  765.             mallocs from own heap, with heap grown upwards towards
  766.             stack, and the stack growing down towards heap,
  767.             with a minimum slush between them so that they
  768.             dont meet (only checked while malloc'ing). With
  769.             this model, further spawning is not possible, but it is
  770.             well suited for programs such as gcc-cc1 etc.
  771.             Thanks to Piet van Oostrum & Atze Dijkstra for this idea
  772.  
  773.     0L        keep minimum amount of memory. this is also the
  774.             case when _stksize is undefined by the user.
  775.     1L        keep 1/4 of memory, free 3/4
  776.     2L        keep 2/4 (1/2), free rest
  777.     3L        keep 3/4, free 1/4
  778.     other        keep that many bytes
  779.     -other        keep all BUT that many bytes
  780.  
  781. malloc.c:: ++jrb
  782.     added code for allocating from own heap when _stksize == -1L
  783.  
  784. main.c:: ++jrb
  785.     as proposed by allan pratt, make gemdos handle 2 the file for
  786.     stderr. then if isatty(2) Fforce(2, -1). this allows for
  787.     re-direction of stderr (by shells that can) to a file. if
  788.     stderr is not re-directed  it is Fforce'd to gemdos handle -1
  789.     (console). if it is re-directed, stderr becomes a full
  790.     buffered stream.
  791.  
  792. sflonum.s:: ++jrb
  793.     replacement __cmpsf2 courtesy of Piet van Oostrum.
  794.  
  795. unlink.c:: ers
  796.     was missing proto for malloc.
  797.  
  798. crt0.c:: ++jrb
  799.     sp was being set incorrectly to (bp->p_tbase + m) instead
  800.     of (bp + m). (m already includes sizeof(BASEPAGE)
  801.  
  802. gnulib2.c:: ++jrb
  803.     added missing proto for __fixunsdfdi()
  804.  
  805. stdio.h:: ers
  806.     added proto for _filbuf(), needed for getc().
  807.  
  808. string.h:: ers
  809.     provide inline definitions for strcat, strcpy, and strlen
  810.     (these can be undone by #undef strcat, etc.)
  811.  
  812. malloc.c, sbrk.c:: ers
  813.     move HeapAlloc from malloc.c to sbrk.c, and merge its functionality
  814.     into lsbrk()
  815.     provide dynamic readjustment of MINHUNK, so that a program that makes
  816.     lots of little requests is less likely to run into the 20 malloc bug
  817.  
  818. strchr.c, strcmp.c, strcpy.c, strlen.c, strncat.c, strncmp.c, strrchr.c:: ers
  819.     adjustments to reduce code size and improve execution speed
  820.  
  821. fopen.c:: ers
  822.     allow for open() to return TOS's (word) negative special file
  823.     handles.
  824.     make TTY's line buffered instead of unbuffered, so that the
  825.      editing functions in read.c can work. (this  mod is not
  826.     complete: it is in preparation for upcoming dev driver
  827.     interface for character devices  ++jrb)
  828.  
  829. sbrk.c:: ++jrb
  830.     the asm for sbrk was in the wrong place.
  831.  
  832.     ( (thanks edgar)
  833.     a general warning about the asm dirty trick for multiple
  834.     entry points: if the routine has strings you cannot use it
  835.     as the compiler compiles strings into text area, and these
  836.     are put before the function entry point, so the asm() would
  837.     fall into the strings. suggested work around:
  838.       asm(".text; .even; .globl _fooalias,_foo; _fooalias: jra _foo");
  839.     seems to be the safest way of doing this. (warning: if there
  840.     is no intervening text between _fooalias: and _foo: then
  841.     you'll get a 0 offset error from gas. if you use sun /bin/as it just
  842.     generates a bad opcode! when this is the case our old trick
  843.     is the one to use.)
  844.     )
  845.  
  846. main.c:: ers
  847.     changed so stderr doesn't get set redirected if we're called from
  848.     a sensible shell (i.e. one that understands the standard ARGV
  849.     conventions)
  850.  
  851. assert.h:: ++jrb
  852.     slightly improved (per gcc v1.37)
  853.  
  854. fprintf.c:: ++jrb
  855.     adjusted __eprintf for improved assert.h
  856.  
  857. gnulib2.c:: ++jrb
  858.     bug fixes (per gcc v 1.37)
  859.  
  860. limits.h:: ++jrb
  861.     replaced: with output of config
  862.  
  863. float.h:: ++jrb
  864.     replaced: with output of config (still lies a little bit! the
  865.     output is from running `config -f' on a Sun)
  866.     (we really need to fix up some of the float stuff -- where are
  867.      you Kai-Uwe)
  868.  
  869. Acknowledgements: most of the fixes below are from Edgar Roeder from
  870. diff he sent me for emacs with this lib. Thank you very much!! we will
  871. be incorporating more of his ideas as the pluggable char devices
  872. interface takes shape.
  873.  
  874. atof.c:: ++jrb
  875.     dont clear errno (edgar)
  876.     recognizes trailing F or L
  877.  
  878. qsort.c:: ++jrb
  879.     fixed signed/unsigned compare problems (i cant believe i made
  880.     this mistake)
  881.  
  882.  
  883. errno.h, perrror etc etc:: ++jrb(edgar)
  884.     made all errno's positive. so much more convenient! why did we
  885.     have this brain damage in the first place?
  886.  
  887. grep errno *.c:: ++jrb(edgar)
  888.     return positive errno's
  889.  
  890. fcntl.h, ioctl.h,keycodes.h,setjmp.h,signal.h,support.h,sysvars.h
  891. tchars.h,times.h:: ++jrb(edgar)
  892.     adjustments for emacs (some of the stuff in there is not fully
  893.     implemented , but will be with the upcoming device interface).
  894.     Thanks to edgar for all the emacs changes.
  895.  
  896. *: ++jrb
  897.     got rid of RCS headers wherever i found them. they just cause
  898.     lots of unnecessary diffs.
  899.  
  900. crt0.c:: ++jrb (thanks edgar)
  901.     - acc support
  902.     - dump friendly
  903.     New acc convention:
  904.     crt0 now detects acc. if a program wants to run as an acc (or
  905.     both as an acc or app), then it must
  906.         - set _heapbase to bottom of heap+base
  907.         - set _stksize to size of heap+base
  908.         - at startup: sp set to the top and malloc() will
  909.           happen from heap.
  910.         (note: malloc() *not* Malloc())
  911.  
  912.     New dump convention:
  913.     undumpable programs set _initial_stack to desired value. 
  914.     _stksize is set from this at each startup, and malloc()
  915.     happens from own heap. (which implies 
  916.     _initial_stack == heap+stack size)
  917.  
  918. crt0.c:: ++jrb
  919.     - bug fix: the from area of old style cmdline was not being
  920.     terminated properly. (showed up when fast bit is set)
  921.     - fix up env to new style when we get a old style env.
  922.     (bill -- tell me how lharc does from arcshell now)
  923.  
  924. sysvars.h:: ++jrb
  925.     New convention: 
  926.     all sysvars defined as a address pointer of the correct type.
  927.     to access their value, you just have to dereference in
  928.     super mode.
  929.  
  930. sysvar.c:: ++jrb
  931.     Long get and set a sysvar. Note the use of volatile. guess
  932.     what happens if you dont use it!
  933.  
  934. all makefiles:: ++jrb
  935.     adjusted for new targets
  936.  
  937. abort.c:: ++jrb
  938.     for now raise SIGIOT. once the signal stuff is complete we'll
  939.     raise SIGABRT as it should.
  940.  
  941. access.c:: ++jrb
  942.     check owner modes, now that we do *real* modes. see stat.c
  943.  
  944. clock.c:: ++jrb
  945.     returns # of ticks since start of process. new variables
  946.     _start_time initialized in _main(). _child_time and _sys_time
  947.     are maintained by spawnve.c (_sys_time is 0 for now always)
  948.     this info is stuffed into the tms buffer by times().
  949.  
  950. dirent.c:: ++jrb
  951.     opendir(): run name through unx2dos() before Fsfirst'ing.
  952.     ino's are initialized from a up-counter (note: see stat too)
  953.     we should probably be looking at a way to set them to their
  954.     fat #.
  955.     (note: d_reclen is not posix, its bsd'ism)
  956.  
  957. dup.c:: ++jrb
  958.     set __open_stat on dup too.
  959.  
  960. fflush.c: ++jrb
  961.     copy fp->_cnt into local before writing/clearing in case the write is
  962.     interrupted.
  963.  
  964. fhandle.c:: ++jrb
  965.     adjustments for new __open_stat struct
  966.  
  967. fopen.c:: ++jrb
  968.     adjust open mode
  969.  
  970. main.c:: ++jrb
  971.     avoid all static initializations.
  972.     initialize clock variables
  973.     make stderr rw for brain dead people
  974.     exit with return value of main as be ansi C
  975.  
  976. malloc.c: ++jrb
  977.     exchanged entry point and their aliases.
  978.     merged in edgars changes to shrink heap if free'd block is at
  979.     the top of the heap.
  980.  
  981. open.c:: ++jrb
  982.     better mode handling.
  983.     set additional fcntl flags in __open_stat
  984.  
  985. sbrk.c:: ++jrb
  986.     return -1 on error
  987.     if doing heapallocs and  n == 0 return _heapbase
  988.  
  989. scanf.c: ++jrb
  990.     handles short values correctly
  991.     add %n
  992.  
  993. setvbuf.c:: ++jrb
  994.     if bp is null, alloc it
  995.  
  996. signal.c:: ++jrb
  997.     _init_signal() : initializes sig_array instead of static
  998.     initialization. (it'll do more soon). called from crt0.
  999.  
  1000. sleep.c:: ++jrb
  1001.     sleep, usleep use clock()
  1002.  
  1003. spawnve.c:: ++jrb
  1004.     keep track of child_runtime
  1005.  
  1006. stat.c:: ++jrb
  1007.     *real* mode bits
  1008.  
  1009. tchars.c:: ++jrb
  1010.     added (yet unsupported) tchars
  1011.  
  1012. times.c:: ++jrb
  1013.     stuff _chaild_runtime etc from variables and clock()
  1014.  
  1015. osbind.h:: ++jrb
  1016.     another major re-hack:
  1017.     -- the basic reason: there was just no reliable
  1018.     way to get the definitions (inline or not does'nt matter) to
  1019.     fully evaluate the args before we changed the sp from under it.
  1020.     (if -fomit-frame-pointer is *not* used, then most of the time
  1021.      we dont need to do this, as things will just reference off of
  1022.      a6, but this is not true all of the time).
  1023.     my solution was to use local vars in the body of the statement
  1024.     exprs, and initialize them from the args of the statement expr block.
  1025.     to force the evaluation of the args before we change sp from
  1026.     under gcc's feet, we make the local vars volatile. we use a
  1027.     slight code optimization heuristic: if there are more than 4
  1028.     args, only then we make the local volatile, and relax
  1029.     the "r" constraint to "g". otherwise, we dont put the volatile
  1030.     and force the evaluation by putting the "r" constaint. this
  1031.     produces better code in most sitiations (when !__NO_INLINE__
  1032.     especially), as either the args are already in a register or
  1033.     there is good chance they will soon be reused, and in that
  1034.     case it will already be in a register.
  1035.     it may (the local vars, especially when no volatile)
  1036.     look like overhead, but in 99% of the situations gcc will just
  1037.     optimize that assignment right out. besides, this makes
  1038.     these defines totally safe (from re-evaluation of the macro args).
  1039.  
  1040.     -- as suggested by andreas schwab (thanks!)
  1041.      (schwab@ls5.informatik.uni-dortmund.de) all the retvalues are now
  1042.      local register vals (see the extentions section in the info file)
  1043.      this really worked out great as all the silly "movl d0,%0" at
  1044.      the end of each def can now be removed, and the value of
  1045.      retvalue ends up in the correct register. it avoids all the
  1046.      silly "mov d0,[d|a]n" type sequences from being generated. a real win.
  1047.      (note in the outputs "=r"(retvalue) still has to be specified,
  1048.      otherwise in certain situations you end up loosing the return
  1049.      value in d0, as gcc sees no output, and correctly assumes that the
  1050.      asm returns no value).
  1051.  
  1052.     -- all the n's (the function #'s for the traps) are now given
  1053.     the more relaxed "g". This again results in better code, as
  1054.     it is always a constant, and gcc turns the movw %1,sp@- into
  1055.     a movw #n,sp@-. we could have given them a "i" constraint too,
  1056.     but "g" gives gcc more breathing room, and it does the right
  1057.     thing. note: the n's still need to have "r" constraints in the
  1058.     non-inline form (function form), as they are no longer constants
  1059.     in the function, but a normal arg on the stack frame, and hence
  1060.     we need to force evaluation before we change sp. (see osbind.c)
  1061.  
  1062.     -- straps.cpp and traps.c are history. we dont need no stinking
  1063.     non-reentrant bindings (straps) or incorrect ones (traps.c :-)
  1064.  
  1065. osbind.c:: ++jrb
  1066.     new file. contains non-inline bindings for both 16 or 32 bit
  1067.     lib. straps.cpp and traps.c are history.
  1068.  
  1069. *akefile:: ++jrb
  1070.     adjustments for above
  1071.  
  1072. string.h:: ++jrb
  1073.     inline __strcat was'nt returning dest.
  1074.  
  1075. isatty.c:: ++jrb
  1076.     check return value of Fseek against -EBADARG since errnos are +ve
  1077.     Fseek with SEEK_SET instead of SEEK_END
  1078.     (btw: atari's example in the T1.4 supplementary docs for
  1079.     isatty() is wrong)
  1080.  
  1081. rename:: ++jrb
  1082.     typo, (should be if(rval < 0) errno = -rval)
  1083.     if newname exists, delete it first (this is BSD'ism, buts thats
  1084.     ok because my handy ansi draft says "if a file new exists prior
  1085.     to call, the behavior is impl. defined"
  1086.  
  1087. crt0.c:: ++jrb
  1088.     __data_start removed as it can be determined from basepage.
  1089.     return from acc now calls _exit() directly not exit().
  1090.     its just too bad if an acc falls out like this. not much we
  1091.     can do.
  1092.  
  1093. times.h, time.h:: ++jrb
  1094.     time_t guarded by _TIME_T rather than __TIME_T_DEFINED to
  1095.     be consistent with size_t beging guarded by _SIZE_T
  1096.  
  1097. param.h:: ++jrb
  1098.     added definition of HZ. users may want to adjust
  1099.     the definition for local standards.
  1100.  
  1101. times.c:: ++jrb
  1102.     use definition of HZ from param.h
  1103.  
  1104. sleep.c:: ++jrb
  1105.     units for usleep were incorrect. HZ was a misnomer there.
  1106.  
  1107. memccpy.c, memcpy.c:: ++jrb
  1108.     size_t is unsigned, so <= 0 type comparisons dont make sense
  1109.     (and limit range)
  1110.  
  1111. minimal.h:: ++jrb
  1112.     _exit() now in crt0
  1113.  
  1114. gmon.c:: ++jrb
  1115.     true profiling comes to tos-gcc. profil(2), monitor(3)
  1116.     and friends. gprof distributed in a seperate dir.
  1117.  
  1118. crt0.c:: ++jrb
  1119.     added #ifdef for making gcrt0.o for profiling. the front
  1120.     end gcc.ttp, will automatically link in gcrt0.o for the
  1121.     startfile, when `-pg' option is used. NOTE: unlike under
  1122.     unixen, cc -pg will not want profiled libraries. if you
  1123.     want to link in profiled libraries, you have to explicitly
  1124.     link them in.
  1125.  
  1126. *akefile:: ++jrb
  1127.     adjust for above
  1128.  
  1129. qsort.c:: ++jrb
  1130.     turns out we were over-collapsing the walls! check left and right
  1131.     pts dont cross hi and lo resp.
  1132.  
  1133.  
  1134. rename.c:: ers
  1135.     fix so return value is always -1 on error
  1136.  
  1137. fork.c,vfork.c:: ers
  1138.     completely new way of doing vfork(), combined with a way to emulate
  1139.     fork(). of course, the parent has to wait until the child is
  1140.     done, but they both get copies of the same data space.
  1141.  
  1142. exec.c:: ers
  1143.     new file; emulate execve and execv (execl* and exec*p to follow).
  1144.  
  1145. spawnve.c:: ers
  1146.     changed to implement P_OVERLAY (this doesn't really work yet; all
  1147.     it does is _exit(spawnve(P_WAIT, ...))).
  1148.  
  1149. *makefile*:: ers
  1150.     fixed iio.olb (before, the files that were in it weren't usually
  1151.     linked, since they weren't needed yet; added fprintf.o, sprintf.o,
  1152.     etc.)
  1153.  
  1154. memory.h, stdlib.h:: ++jrb
  1155.     proto for alloca only if alloca() is !defined. typically we
  1156.     #define alloca __builtin_alloca.
  1157.  
  1158. dflonum.c, sflonum.s, fixnum.s:: ++jrb
  1159.     obsolete: please mv these files to subdir notused/
  1160.  
  1161. all float/double/long support routines:: ++jrb
  1162.     thanks to Kai-Uwe Bloem (I5110401@DBSTU1.BITNET) for the complete
  1163.     replacements. these routines really do work well. to see the
  1164.     difference try pml/pmltests/* before and after. thanks kai-uwe!
  1165.     (see README.FP and the _*.s files for more details).
  1166.  
  1167. *akefile*:: ++jrb
  1168.     adjusted for above
  1169.  
  1170. gmon.c::
  1171.     use etv_timer as it saves reggie and does the clock/4 etc,
  1172.     less overhead. the old code (that used timer C intr) is still there:
  1173.     to activate it -D_USE_TIMER_C_.
  1174.     when un-installing, dont check for GNUC signature, just _XBRA_MAGIC
  1175.     any handlers found  before myself that dont use XBRA are nuked as
  1176.     they may end up calling the handler we are de-installing. If
  1177.     they happen to have another XBRA friendly handler as their next,
  1178.     which is not the one we are de-installing, its tough luck, as
  1179.     we cant find their next, we just install our next into the exception
  1180.     vector.
  1181.     Thanks to edgar for the suggestions.
  1182.  
  1183. _normdf.s _normsf.s:: kub
  1184.  export ___normdf entry to C language. Rename the internal entry to a name
  1185.  not accessible from C to prevent crashes
  1186.  
  1187. _addsubdf3.s _addsubsf3.s _divdf3.s _divsf3.s _extendsfdf2.s
  1188. _floatsidf.s _muldf3.s _mulsf3.s _truncdfsf2.s:: kub
  1189.  adjust for the re-named entry points in _normdf.s and _normsf.s
  1190.  
  1191. _divmodsi3.s _udivmodsi3.s:: kub
  1192.  small bug fix: numbers having bits 30 or 31 set would eventually fail.
  1193.  
  1194. _normdf.s. *akefile:: ++jrb
  1195.     change interface of __normdf to expects ints instead of shorts
  1196. for exp, sign, and rbits. easier to interface this to !-mshort code
  1197. this way. change name of _normdf.s to _normdf.cpp, and preprocess
  1198. it in the makefile for #ifdef __MSHORT__.
  1199.  
  1200. atof.c, frexp.c, modf.c:: ++jrb
  1201.     use the new __normdf() entry point instead of norm.
  1202.  
  1203. norm.c: ++jrb
  1204.     redundant and obsolete. mv to notused/
  1205.  
  1206. mincl.32, mincl.16, gmakefile.16, makefile.16:: ++jrb
  1207.     make was attempting to make $(GLIB2) over and again. added
  1208. dummy target gl216done in turn depends on gnulib2.c. it is touch'ed
  1209. once GLIB2 has been made. (which means you must have or write
  1210. touch.ttp). in *akefile.16 added CLFLAGS, the flags required for
  1211. things that will be compiled with 32 bit intergers in the -mshort lib.
  1212.  
  1213. norm.c, _normdf.cpp, atof.c, frexp.c, modf.c:: ++jrb
  1214.     resurrect norm.c from not used (it refuses to die!).
  1215. __normdf() is doing something strange with the C entry point, and loosing
  1216. the sign bit. (the asm entry seems to be fine). in atof/frexp/modf
  1217. #define __normdf norm and bring norm.c back.
  1218.  
  1219. fwrite.c:: ++jrb
  1220.     after fflush()'ing when space goes to zero (but we are'nt finished
  1221. necessarily with the write request), if _IORW set _IOWRT flag, otherwise
  1222. we loose what we write in the buffer subsequently if read or seek happens
  1223. before the next flush. zoo showed up this bug. i can hardly belive it survived
  1224. this long! ARRRRRRRRGGGGGGGGGGGGGGGHHHHHHHHHHHHHHH!! (i feel much better now)
  1225.  
  1226. ldexp.cpp, frexp.cpp, modf.c:: ++jrb
  1227.     replace the .c files of the same name.
  1228.  
  1229. *makefile:: ++jrb
  1230.     adjust for above
  1231.  
  1232. crt0.c:: edgar
  1233.     detect prog/acc by testing sp instead of a0 for the benfit of
  1234. pack/unpack and friends that dont clear a0 when launching an app.
  1235.  
  1236. ctype.c:: edgar
  1237.     added two location before _ctype[] to catch isXXX(EOF) tests.
  1238.  
  1239. stat.h:: edgar
  1240.     make st_mode unsigned short type (some programs use st_mode as
  1241. an index into an array, negative indicies make them blow up).
  1242.  
  1243. atof.c:: ++jrb
  1244.     cleared up my confusion with __normdf(). i was forgetting
  1245. about denormalized numbers, and needed to call ldexp() instead of stuffing
  1246. the binary exponent directly into the result at the bottom of __adjust().
  1247. norm.c can now be safely mv'ed to unused.
  1248.  
  1249. *akefile:: ++jrb
  1250.     adjusted for above. in mincl.* took out the dummy glib*done targets
  1251. they we not required. the problem bill was seeing was due to the incorrect
  1252. def for GLIB2 in mincl.16. it should just be "gnulib2.o".
  1253.  
  1254. stddef.h:: ers
  1255.     changed definition of EXIT_FAILURE from (-1) to (1) to agree with
  1256.     Unix
  1257.  
  1258. sys/dir.h, dirent.h:: ers
  1259.     merged into one file, and updated to allow caching of directory
  1260.     information for stat()
  1261.  
  1262. stat.c:: ers
  1263.     stat() now communicates with the dirent functions, so that a "stat"
  1264.     on a file in an open directory doesn't have to go back to disk
  1265.     (opendir() gets all the information stat() needs for free, so we
  1266.     might as well save it).
  1267.  
  1268. grp.c, grp.h:: ers
  1269.     primitive group id/name functions now provided
  1270.  
  1271. stat.h:: ers
  1272.     include <types.h> if it hasn't already been included
  1273.  
  1274. string.h:: ers
  1275.     provide inline version of strdup(), for benefit of the library
  1276.  
  1277. perror.c:: ers
  1278.     all the error messages were in the wrong order now. oops.
  1279.  
  1280. lots of places:: ers
  1281.     added new code to handle symbolic links. whether or not to use
  1282.     them is up to the user, via the environment variable UNIXMODE
  1283.     (which also controls other forms of directory mapping, too).
  1284.     still to do: code to prevent conflicts for long filenames,
  1285.     and proper documentation for UNIXMODE.
  1286.  
  1287. chmod.c:: ers
  1288.     Changed to silently ignore attempts to chmod() a directory (TOS
  1289.     doesn't give any real permissions to directories anyways).
  1290.     umask() moved to open.c
  1291.  
  1292. console.c, signal.c:: ers
  1293.     Only steal keypresses if we really have to check for signals.
  1294.     This removes aggravating inability to type ahead while looking
  1295.     at output from utilities.
  1296.  
  1297. crt0.c:: ers
  1298.     remove all occurences of "int" keyword, add comment to remind us
  1299.     not to use ints, since crt0.o should be the same for 16 and 32
  1300.     bits.
  1301.  
  1302. dirent.c, symlink.c, stat.c:: ers
  1303.     improve "shadowing" code so that aliases for long filenames work
  1304.     exactly like the original files, and the originals don't appear
  1305.     in directories if _lAUTO is set. Also allow the ".dir" file to
  1306.     be hidden.
  1307.  
  1308. mincl.16:: ers
  1309.     GLIB2 should just be gnulib2.o, I think (as in mincl.32). Perhaps
  1310.     that's what was causing the wierd loops.
  1311.  
  1312. open.c:: ers
  1313.     added a more useful umask().
  1314.  
  1315. spawnve.c:: ers
  1316.     oops, was clobbering "mode" when its value would be needed later.
  1317.     exec() should work now!
  1318.  
  1319. symdir.h, unx2dos.c:: ers
  1320.     cleaned up flags, removed unused ones. Added "H"ide (hides the
  1321.     .dir file) and "r"oot (used to specify a default root drive;
  1322.     e.g. "rC" causes "/bin/sh" to translate into "C:\BIN\SH" no
  1323.     matter which drive is current. Useful if the "r" drive has
  1324.     symlinks like "usr->D:", so "/usr/bin" is "D:\BIN".
  1325.  
  1326.     Fix up compatibility code to be really compatible (the _unixmode
  1327.     variable never gets set until runtime).
  1328.  
  1329. symlink.c:: ers
  1330.     add a (fake) link() call. clean up lstat() to take better
  1331.     advantage of stat's intelligence.
  1332.  
  1333. stat.h:: ers
  1334.     add definitions for major(), minor(), and S_IFBLK
  1335.  
  1336. string.h:: ers
  1337.     nuke inline strdup(); there were conflicts over the type of
  1338.     "malloc()".
  1339.  
  1340.  
  1341. frexp.cpp, ldexp.cpp, _normdf.cpp:: kub
  1342.     better support for 32 bit ints (when used as exponents that is)
  1343.  
  1344. device.h, stat.h, types.h,
  1345. chdir.c, mkdir.c, open.c, rename.c, rmdir.c, spawnve.c
  1346. stat.c, symdir.h, symlink.c, unlink.c, unx2dos.c, utime.c:: ers
  1347.     Here are diffs to support the "/dev/" directory. Although the "device.h"
  1348.     file claims to describe user definable devices, that isn't done yet;
  1349.     for now only the console, printer, and rs232 are supported, as well as
  1350.     Edgar's /dev/A/ alternative to A:, etc. There are some minor cleanups
  1351.     to the _unx2dos code to recognize device names; also, stat() has been
  1352.     fixed to deal with devices (so "ls -l CON:" works now!).
  1353.     _unx2dos now returns symbolic constants defined in symdir.h.
  1354.     note the name change of unx2dos to _unx2dos all over.
  1355.  
  1356. *akefile*:: ++jrb
  1357.     s/CPPFLAGS/PPFLAGS/g because gnumake insisted on automatically
  1358.     adding CPPFLAGS to CFLAGS (this behavior is a little strange)
  1359.     thanks to bill shorka.
  1360.  
  1361. *akefile:: ++jrb
  1362.     i finally got sick of dealing with all these makefiles.
  1363.     merged all the common parts into a new include files "mincl"
  1364.     adjusted makefile.16, makefile.32, gmakefile.16, gmakefile.32
  1365.     these are now used for both native atari and unix based
  1366.     cross-compiling using gnumake. i have a Makefile that i
  1367.     use for compiling that invokes gnumake on makefile.*
  1368.     and gmakefile.*  with CC, AR, CPP etc as args.
  1369.  
  1370.     please remove CGMakefile.* CMakefile.*, mincl.16 and mincl.32
  1371.  
  1372. stat.c:: ++jrb
  1373.     was not setting st_nlink for regular files
  1374.  
  1375. unx2dos.c:: ++jrb
  1376.     was not covering the case "/dev/D" (its odd to me atleast to
  1377.     type "ls /dev/D/", instead of "ls /dev/D")
  1378.  
  1379. _normdf.cpp, ldexp.cpp, frexp.cpp:: ++jrb
  1380.     quotes in comments were thowing gcc-cpp -P off (sorry i forgot
  1381.     about this).
  1382.  
  1383. dirent.c, stat.c :: ++jrb
  1384.     dta was not being reset back to orig dta before returning in
  1385.     two cases. this may cause problems as the dta was set to a local
  1386.     structure.
  1387.  
  1388. unlink.c:: ++jrb
  1389.     initialize dir = NULL at the top, so that _free_symdir()
  1390.     doesnt get junk when !ent and it is called. thanks to allan
  1391.     who reported and suffered thru this bug!
  1392.     Check in all files for any more instances of the same thing. they
  1393.     seem to be ok.
  1394.  
  1395. time.h:: ++jrb
  1396.     changed components of struct tm to be of type int rather than
  1397.     short as per ansi sec 4.12.
  1398.  
  1399. main.c:: ++jrb
  1400.     let the implementation dependent exit value of main be EXIT_SUCCESS
  1401.     if main() fall thru.
  1402.     this saves us a lot of headaches while porting, and is compliant.
  1403.  
  1404. gemdefs.h, obdefs.h:: ++jrb
  1405.     new files. aliases for gemfast.h to make porting easier.
  1406.  
  1407. close.c:: ers
  1408.     allow for device file names (open keeps track of them for fstat now)
  1409.  
  1410. ftw.c:: ers
  1411.     try to be smarter about whether to use '\' or '/' in file names
  1412.  
  1413. rename.c:: ers
  1414.     watch out for renaming when the new file name has the same _unx2dos
  1415.     result as the old one
  1416.  
  1417. stat.c,rmdir.c, unlink.c:: ers
  1418.     if links are active, insist that the proper file names are given
  1419.     (so the user doesn't accidentally delete "foo" when s/he asked to
  1420.     delete "Foo")
  1421.  
  1422. stat.c, symlink.c:: ers
  1423.     fixed up some comments, moved lstat to stat.c, fixed fstat to
  1424.     not try to search through links (it already has the DOS name
  1425.     given)
  1426.  
  1427. unx2dos.c:: ers
  1428.     if _lAUTO is on and a filename is given that needs changing for
  1429.     DOS or that already exists as a link, make sure that its DOS
  1430.     name is unique. Doing this here saves a *lot* of hassle in
  1431.     functions all over the place. Not extensively tested yet,
  1432.     but seems to work. We can probably do better than the present
  1433.     algorithm.
  1434.  
  1435. chdir.c:: andreas schwab
  1436.     fixed up if expression.
  1437.  
  1438. linea.h:: andreas schwab
  1439.     fixed up typo in cast for linead (last arg)
  1440.  
  1441. sys/ioctl.h:: ++jrb
  1442.     another alias for ioctl.h
  1443.  
  1444. getcwd.c:: ers
  1445.     Don't add the '\' for the root directory. This makes everything
  1446.     consistent; getcwd() always returns a path without trailing '\'.
  1447.     If symbolic links are on, use _full_unx2dos (see below) to
  1448.     look for long names, etc.
  1449.  
  1450. link.c, symlink.c, mincl:: ers
  1451.     link() moved to a separate file, so that programs like "tar" that
  1452.     supply a copying version of link won't have problems
  1453.  
  1454. unlink.c:: ers
  1455.     major bug in handling of automatic link deletion corrected (this
  1456.     bug caused a crash when an error occured during unlink()).
  1457.  
  1458. unx2dos.c:: ers
  1459.     add a routine, _full_dos2unx, which searches along the path looking
  1460.     for automatic symbolic links to the components, so that the unix
  1461.     name reflects what the user wanted.
  1462.  
  1463. ftw.c:: ers
  1464.     fixed the algorithm for deciding what kind of slash to use; it works
  1465.     now if no slash appears in the original name
  1466.  
  1467. symlink.c:: ers
  1468.     fixed readlink() to work correctly when the link being read points
  1469.     to another symbolic link
  1470.  
  1471. close.c, ioctl.c, isatty.c, open.c, read.c, unx2dos.c, write.c:: ers
  1472.     allow user defined "plug-n-play" devices
  1473.  
  1474. screen.c, screen.h, mouse.h:: ers
  1475.     sample plug-n-play mouse and screen devices, like the Minix gkernel
  1476.     /dev/mouse and /dev/screen
  1477.  
  1478. minimal.h:: ers
  1479.     add _init_signal so as to avoid dragging in the signal routines,
  1480.     and change _main to pass argc and argv on to main (since crt0.c
  1481.     parses the arguments anyways, we might as well let people use them!)
  1482.  
  1483. dirent.c:: ers
  1484.     fix a bug whereby failure to open the ".dir" file when auto links
  1485.     are active could cause a crash (actually, this only happened when
  1486.     the error exit code is not ENOENT)
  1487.  
  1488. spawnve.c:: ers
  1489.     allow mode == P_NOWAIT for microRTX and MiNT
  1490.  
  1491. spawnvp.c:: ers
  1492.     put error code in "errno" and return -1 on failure, instead of
  1493.     returning the (now positive) error code
  1494.  
  1495. findfile.c::
  1496.     terminated a string that didn't used to be terminated
  1497.  
  1498. write.c::
  1499.     made all terminal writes go through console_write_byte
  1500.     (so signals will always be checked); also checked and
  1501.     turned off '\n' -> '\r\n' translation when the terminal
  1502.     is in RAW mode (curses, for example, seems to expect this)
  1503.  
  1504. keycodes.h::
  1505.     fixed definitions of the ALT_1 through ALT_0 keys
  1506.  
  1507. getw.c:: ++jrb
  1508.     getl() had an incorrect mask. thanks to Rainer,ro@thp.Uni-Koeln.DE
  1509.  
  1510. atof.c:: ++jrb
  1511.     __adjust should have been static
  1512.  
  1513. filbuf.c:: edgar
  1514.     do not remember EOF if input comes from a tty (er)
  1515.  
  1516. atof.c:: edgar
  1517.     change overflow condition in tem_mul(). ( was causing
  1518.     truncation at the 21'st digit)
  1519.  
  1520. fopen.c:: ++jrb
  1521.     freopen(): if the file is already open, close it. If it was closed
  1522.     its fine. (used it be: it failed if file was closed -- thnaks bill)
  1523.  
  1524. sysvars.h:: ++jrb
  1525.     added OSHEADER
  1526.     (note: atari (tos 1.4 addendum) docs for os_date incorrectly states
  1527.     that the format is $YYYYMMDD --  it is really $MMDDYYYY)
  1528.  
  1529. linea.h:: ++jrb
  1530.     adjusted logic ops. thanks alan.
  1531.  
  1532. main.c:: ++jrb
  1533.     make at_exit() a little safer by not loosing _at_exit[] when
  1534.     realloc fails. thanks allan.
  1535.  
  1536. main.c:: ++jrb
  1537.     exit with returned value from main(). if its junk, then the
  1538.     users main() needs to be fixed (no way to find out if returned
  1539.     value is junk or not).
  1540.  
  1541. main.c:: edgar
  1542.     initialize __open_stat for the standard file descriptors
  1543.  
  1544. close.c:: edgar
  1545.     check __open_stat.filename before freeing
  1546.  
  1547. dirent.c:: ++jrb
  1548.     dont check return value of Fsetdta (it does'nt have one)
  1549.  
  1550. exec.c, spawnvp.c::
  1551.      make execve more robust by checking X bit of stat.
  1552.      add execl and execvp
  1553.  
  1554. getuid.c:: edgar
  1555.     add geteXXX()
  1556.     for uid's return the value of var uid, instead of hardcoded 1
  1557.  
  1558. getpid.c:: edgar
  1559.     add getppid()
  1560.  
  1561. grp.*:: edgar
  1562.     add passwd field to grp structure
  1563.  
  1564. stat.c:: ++jrb
  1565.     dont check return value of Fsetdta (it does'nt have one)
  1566.  
  1567. basepage.h::
  1568.     elaborate it further
  1569.  
  1570. dirent.h::
  1571.     change defn of DIRSIZE
  1572.  
  1573. gemfast.h::
  1574.     mf_fg/bg were swapped in MFORM str.
  1575.  
  1576. osbind.h:: edgar
  1577.     adjust return value types of various bindings.
  1578.     added some system str types
  1579.  
  1580. pwd.h:: edgar
  1581.     add defn for pw_comment
  1582.  
  1583. vt52.h:: frank
  1584.     new file, thanks frank
  1585.  
  1586. assert.h::
  1587.     change defs. pass __LINE__ as a long. __eprintf is expects a long.
  1588.  
  1589. fprintf.c::
  1590.     adjust types for args to __eprintf
  1591.  
  1592. errno.h::
  1593.     merged in many aliases. not sure if we a blatently currupting
  1594.     the name space.
  1595. fcntl.h::
  1596.     minor adjustments. added the flock defs etc for MiNT. ERS i am
  1597.     not sure i understand why __SMALLEST_VALID_HANDLE should
  1598.     be 0 when !MSHORT (i know that handles are only word -ve, but
  1599.     when you assign to int, it will get sign extended).
  1600.  
  1601. gemfast.h::
  1602.     choose between defferent defs of struct MFDB by using
  1603.     __MFDB__ or __ALT_MFDB__ pre-processor symbols. (cp this
  1604.     to gemlib src directory too).
  1605.  
  1606. ioctl.h::
  1607.     add defs for EVENP, ODDP, change def of LCASE. ers: why did
  1608.     you del all the defs for baud rates?
  1609.  
  1610. limits.h:
  1611.     added the POSIX defs. they dont mean much.
  1612.  
  1613. linea.h::
  1614.     fix defs for linea7, and linead. fix proto for linead when no inline.
  1615.  
  1616. linea.c::
  1617.     do the same in linea.c
  1618.  
  1619. memory.h::
  1620.     use compiler.h, get rid of silly compatibility names
  1621.  
  1622. minimal.h::
  1623.     make everything go thru extern func __exit() instead
  1624.     (note not _exit(), otherwise main.o gets pulled in, which
  1625.      is not what we want)
  1626.  
  1627. osbind.h::
  1628.     add TT bindings.
  1629.  
  1630. osbind.c::
  1631.     same here. also fixed return retvalue; all over.
  1632.     i guess people must never __NO_INLINE__ otherwise this
  1633.     should have shown up. (actually no, since retvalue happens
  1634.     to be in d0 already!).
  1635.  
  1636. param.h::
  1637.     rm old args for NCARGS -- now its as much as free mem
  1638.     ERS note NO change def of HZ to  200. there is too much
  1639.     code assuming HZ == 60, so we must scale the 200 ourselves.
  1640.  
  1641. siglist.h, signal.h::
  1642.     replace with ers's files
  1643.  
  1644. stat.h::
  1645.     correct types
  1646.     add def for S_IFIFO
  1647.  
  1648. stddef.h::
  1649.     use compiler.h
  1650.  
  1651. stdio.h::
  1652.     use compiler.h
  1653.     use alt inline keyword when inlining getc
  1654.     
  1655. stdlib.h::
  1656.     use compiler.h
  1657.  
  1658. string.h::
  1659.     use compiler.h
  1660.     use alt keyword __inline__ when inlining
  1661.  
  1662. time.h::
  1663.     use compiler.h
  1664.     typedef for timeval
  1665.  
  1666. types.h::
  1667.     use compiler.h
  1668.  
  1669. compiler.h mintbind.h resource.h unistd.h wait.h regexp.h::
  1670.     new files (mintbind, resource and wait.h are #ifdef __MINT__ protected)
  1671.  
  1672. sys/errno.h     sys/resource.h  sys/signal.h    sys/wait.h::
  1673.     new files
  1674.  
  1675. ctype.c:: ++jrb
  1676.     ctype should accomodate all UCHAR max characters.
  1677.     make the type array UCHAR+2 long, accomodating EOF as
  1678.     the first element. that way you dont have to depend on
  1679.     a seperate array being contiguous right before the type
  1680.     array, to accomodate EOF. make ctype a pointer into
  1681.     this type array[1]. thanks jens.
  1682.  
  1683. ctype.h:: ++jrb
  1684.     adjust decl of _ctype
  1685.  
  1686. fork.c:: andreas
  1687.     move the code to save the stack data after the point where 
  1688.     newbase is initialized.  needed due to diff in the way reg allocation
  1689.     is done in gcc ver > 1.37. thanks andreas.
  1690.  
  1691. _addsubfs3:: andreas
  1692.     It bites you when you add an insignificant number
  1693.     to another one, so that the difference between the exponents is
  1694.     greater than 24. In this case the result is in the wrong register. It
  1695.     seems that someone has `optimized' this in. 
  1696.  
  1697. mktemp.c:: ++jrb
  1698.     dont always start tryng to make a temp file @ XXXXX0, instead
  1699.     start trying at XXXXX0+startat. this ensures that consequtive
  1700.     calls to mktemp() with actually creating files, yields unique
  1701.     names (in the same process of course). for MiNT incorporate pid
  1702.     or something.
  1703.  
  1704. osbind.c:: ++jrb
  1705.     adjusted proto for trap_14_wwwl
  1706.  
  1707. strstr.c:: ++jrb
  1708.     need proto for strncmp not strcmp
  1709.  
  1710. atof.c:: ++jrb
  1711.     added tests for 1 and 19/20 sig digits
  1712.  
  1713. linea.c:: ++jrb
  1714.     adjust proto for linead()
  1715.  
  1716. makefile.*, mincl:: ++jrb
  1717.     add 020 targets for mc68020/030 etc targets.
  1718.  
  1719. rename some long filenames as requested:
  1720.     ./Changelog ./Changelo
  1721.     ./PatchLevel.h ./PatchLev.h
  1722.     ./_addsubdf3.s ./_addsubd.s
  1723.     ./_addsubsf3.s ./_addsubs.s
  1724.     ./_divmodsi3.s ./_divmods.s
  1725.     ./_extendsfdf2.s ./_extends.s
  1726.     ./_fixunsdfsi.s ./_fixunsd.s
  1727.     ./_floatsidf.s ./_floatsi.s
  1728.     ./_truncdfsf2.s ./_truncdf.s
  1729.     ./_udivmodsi3.s ./_udivmod.s
  1730.     ./gmakefile.16 ./gmakefil.16
  1731.     ./gmakefile.32 ./gmakefil.32
  1732.     ./localtime.c ./localtim.c
  1733.     ./setlocale.c ./setlocal.c
  1734.  
  1735. Makefile, mincl : ++jrb
  1736.     adjust for the renamed files
  1737.  
  1738. Makefile:: ++jrb
  1739.     added 020 targets and defs
  1740.  
  1741. stksiz.c:: ers
  1742.     default symbol _stksize defn. if the user provides no def, this
  1743. gets pulled in. neat idea ers.
  1744.  
  1745. gemfast.h:: ++jrb
  1746.     added TurboC compatibility def for OBJECT (controlled by 
  1747. #ifdef __TCC_COMPAT__ ).
  1748.  
  1749. access.c chdir.c chmod.c console.c dup.c fflush.c filbuf.c fputc.c
  1750. fread.c fseek.c fungetc.c fwrite.c getbuf.c getcwd.c getlogin.c
  1751. getopt.c getpid.c getpw.c getuid.c gmon.c isatty.c lseek.c malloc.c
  1752. mkdir.c open.c popen.c psignal.c read.c rename.c rmdir.c sbrk.c
  1753. setbuf.c sgtty.c sleep.c stat.c textio.c time.c unlink.c utime.c
  1754. write.c:
  1755.     s/unixlib.h/unistd.h/
  1756.  
  1757. close.c fhandle.c isatty.c open.c stat.c unlink.c:
  1758.     s/N_HANDLES/__NHANDLES/
  1759.  
  1760. allover:: ++jrb
  1761.     fixed function proto args to pass -Wstrict-prototypes.
  1762.  
  1763. assert.h:: ++jrb
  1764.     - if !stdc make sure __LINE__ and __FILE__ are def'ed
  1765.     - make sure that __LINE__ is printed using %ld not %d
  1766.       and cast (long)__LINE__
  1767.  
  1768. dirent.h:: ++jrb
  1769.     track name change for DIRSIZE/DIRSIZ from mntlib
  1770.  
  1771. osbind.h:: ++jrb
  1772.     make all the defined structs grow a leading _ (_KBDVEC etc)
  1773.     to avoid clashed with user defined types.
  1774.  
  1775. siglist.h:: ++jrb
  1776.     as in mntlib, move the siglist and signal names to siglist.c
  1777.     declare them extern here. (ers, why did you delete signal_names?)
  1778.  
  1779. siglist.c:: ++jrb
  1780.     new file with defn for sys_siglist and signal_names
  1781.  
  1782. mincl:: ++jrb
  1783.     add target for siglist.o
  1784.  
  1785. stdlib.h:: ++jrb
  1786.     add EXIT_FAILURE ifndef as in mntlib
  1787.  
  1788. unistd.h::
  1789.     ers, why did you make the counts unsigned?? this causes problems
  1790. with the return type, on a successful read you will get <= count or 0 or -1
  1791. but is count is unsigned, the err condition potentially becomes
  1792. undistinguishable.
  1793.  
  1794. alphasor.c:: ++jrb
  1795.     new file from mntlib, the sorting predicate for scandir().
  1796.  
  1797. mincl:: ++jrb
  1798.     - add target for alphasor.o
  1799.     - make it consistent with mntlib mincl (targets for GNULIB2 and
  1800.       rule for .cpp)
  1801.  
  1802. lib.h:: ++jrb
  1803.     got from mntlib, added console_input_status proto.
  1804.  
  1805. chdir.c:: ++jrb
  1806.     include lib.h, void cast return value of Dsetdrv as per mntlib
  1807.  
  1808. chmod.c:: ++jrb
  1809.     merged in change from mntlib that ensures archive bit is not
  1810.     cleared.
  1811.  
  1812. crt0.c:: ++jrb
  1813.     make _stksize extern that is picked up from user or if not
  1814.     specified by the user, from stksiz.c (where it is zero).
  1815.     Nice idea ers!
  1816.  
  1817. fflush.c:: ++jrb
  1818.     get rid of unused local c, per mntlib
  1819.  
  1820. allover:: ++jrb
  1821.     add #include "lib.h" as appro.
  1822.  
  1823. ftw.c:: ++jrb
  1824.     replaced with one from mntlib (stat should take care of UNIXMODE
  1825.     too, no?)
  1826.  
  1827. localtim.c:: ++jrb
  1828.     replace with one from mntlib
  1829.  
  1830. scandir.c:: ++jrb
  1831.     new file, from mntlib
  1832.  
  1833. mincl:: ++jrb
  1834.     add target for scandir.o
  1835.  
  1836. stat.c:: ++jrb
  1837.     look again-- add in real inode # code (edgar sent me, its
  1838.     here somewhere)
  1839.  
  1840. system.c:: ++jrb
  1841.     replaced with ers/pratt fork()'less code. (ers will re-direction
  1842.     in the parents context work just as well?? actually its probably
  1843.     ok, since gemdog is so foobar'ed already).
  1844.  
  1845.  
  1846. support.h, lib.h:: ++jrb
  1847.     consolidate the two. needs  to be checked.
  1848.  
  1849. dirent.h:: ++jrb
  1850.     replace NAME_MAX with limits.h, per mntlib
  1851.  
  1852. ioctl.h:: ++jrb
  1853.     add new MiNT proc ioctls
  1854.  
  1855. stdio.h:: ++jrb
  1856.     track renaming of vars in __getc__ from mntlib
  1857.  
  1858. string.h:: ++jrb
  1859.     incorporate apratts super/duper empirical findings
  1860.  
  1861. osbind.h:: ++jrb
  1862.     added definitions for Bconmap() and Bconctl()
  1863.  
  1864. malloc.c:: ++jrb
  1865.     test return value of sbrk == -1 for no mem, as the TT can ret
  1866.     memory with high bits set, per mntlib
  1867.  
  1868. sbrk.c:: ++jrb
  1869.     ers why did you increase slush from 64 to 256??
  1870.     changes to return -1L when no mem, as per mntlib
  1871.  
  1872. spawnve.c:: ++jrb
  1873.     copy argv[0] insted of path into env following ARGV=, per mntlib
  1874.  
  1875. stat.c:: ++jrb
  1876.     - i was resetting the dta in the if part, changed it to
  1877.     be consistent with mntlib.
  1878.     - deal with root dir of logical drive, per mntlib
  1879.  
  1880. times.c:: ++jrb
  1881.     ers can we switch back to HZ == 60 and scale as appro. there
  1882. is too much stuff out there that blindly assumes this, without looking at
  1883. param.h.
  1884.  
  1885.  
  1886. strlen.c:: ++jrb
  1887.     use the same pratt hack as in string.h (return ptr diff instead
  1888. of count -- and pray that the gcc code selection never changes  half :-)
  1889.  
  1890. strftime.c:: ++jrb
  1891.     replace with one from mntlib
  1892.  
  1893. regexp.c regsup.c regexp.h: ++jrb
  1894.     new files from mntlib.
  1895.  
  1896. mincl:: ++jrb
  1897.     add targets for regexp.o regsup.o
  1898.  
  1899. access.c:: ++jrb
  1900.     replace with one from mntlib
  1901.  
  1902. tmpnam.c:: ++jrb
  1903.     changed mask for mktemp from $$XXXXXX to TTXXXXXX. $$ was
  1904.     causing too many name problems (especially with shells).
  1905.  
  1906. dup.c:: ++jrb
  1907.     added upperbound check for handles as per mntlib
  1908.  
  1909. fgets.c:: ++jrb
  1910.     initialize c to EOF.
  1911.  
  1912. findfile.c:: ++jrb
  1913.     replaced with one from mntlib
  1914.  
  1915. fopen.c:: ++jrb
  1916.     ignore close status when freopening as per ansi/mntlib
  1917.  
  1918. getenv.c:: ++jrb
  1919.     replaced with one from mntlib.
  1920.     NOTICE new function putenv()
  1921.  
  1922. unistd.h:: ++jrb
  1923.     add proto for putenv()
  1924.  
  1925. gnulib2:: ++jrb
  1926.     bdiv is suspect:: replace with my one after test.
  1927.  
  1928. lseek.c:: ++jrb
  1929.     put #ifdef __GNUC__ around builtin_alloca
  1930.  
  1931. main.c:: ++jrb
  1932.     put in MiNT detection.
  1933.     NOTICE new var __mint;
  1934.     invoke MiNT detect
  1935.     or in __default_mode__ for the standard descriptors per mntlib
  1936.  
  1937. minimal.h:: ++jrb
  1938.     add _exit(), since signal and system call it.
  1939.  
  1940. malloc.c:: ++jrb
  1941.     ers: i liked the sentenials very much.
  1942.     include <unistd.h> for sbrk
  1943.     change _sbrk() to sbrk()
  1944.  
  1945. popen/pclose: ++jrb
  1946.     i dunno about these two.
  1947.  
  1948. ers:: i am totally out of sync with read/write and console routines.
  1949. i think i will leave the devices in for now. have to decide what strategy
  1950. would be best for the lib, and yet try to converge towards MiNTs idea
  1951. of these things... let me know if you get any inspirations.
  1952.  
  1953.  
  1954. setjmo.cpp:: ++jrb
  1955.     test for MiNT
  1956.  
  1957. scanf.c:: ++jrb
  1958.     ignore the following warnings:
  1959. scanf.c: In function _scanf:
  1960. scanf.c:123: warning: argument passing between incompatible pointer types
  1961. scanf.c:124: warning: argument passing between incompatible pointer types
  1962. scanf.c:216: warning: argument passing between incompatible pointer types
  1963. scanf.c:227: warning: argument passing between incompatible pointer types
  1964. scanf.c:364: warning: argument passing between incompatible pointer types
  1965. scanf.c:383: warning: argument passing between incompatible pointer types
  1966.  
  1967. main.c:: ++jrb
  1968.     at exit, only flush std streams that are not tty's. this is
  1969. important for some shells that have re-directed the streams, and
  1970. are going to un-redir them on exit (ERS: need to incorporate this in
  1971. mntlib too).
  1972.  
  1973. bsearch.c:: andreas schwab
  1974. `size_t' is unsigned long and ((size_t)-1) is greater than 0. That
  1975. leads to an endless loop (and index out of range) if the key is less
  1976. than the smallest element in the array. (in deciding dir)
  1977.  
  1978. unistd.h:: ++jrb
  1979.     add protos for random(), srandom() etc.
  1980.  
  1981. qsort.c:: ++jrb
  1982.     adjust for non-stdc compiler, add <alloca.h> for sun sparc
  1983.     yes, all those casts are actually required for some
  1984.     dumb-shit compilers
  1985.  
  1986. tmpnam.c:: michal
  1987.     use TxXXXXXX as the template, TTXXXXXX is more likely.
  1988.     use \ instead of / for shells and other things
  1989.     that dont understand unixmode
  1990.  
  1991. unistd.h:: ++jrb
  1992.     change read/write to conform to posix:
  1993.     int read(int, void *, unsigned int nbytes);
  1994.     int write(int, const void *, unsigned int nbytes);
  1995.     
  1996.     max nbytes == 0xffffe (0xffff fffe), return value all F's
  1997.     on error, with errno set. the user is responsible for
  1998.     handling the sign of the returned value as appro.
  1999.     (this really sucks).
  2000.  
  2001. read.c, fread.c,..., write.c, fwrite.c...:: ++jrb
  2002.     adjust for above. NOTE: in _read()/_write() we dont accept
  2003.     counts greater than LONG_MAX. i dont think is an unreasonable
  2004.     restriction at all :-)
  2005.  
  2006. osbind.h:: andreas schwab
  2007.     in the definition for Flopfmt, the return value has the wrong cast.
  2008.     the bad sector list is returned in the buffer pointed to by `buf',
  2009.     in d0 the usual error code is returned.
  2010.  
  2011.     in the `trap_...' definitions where the asm statements are splitted,
  2012.     (across two asm's -- ed:jrb)
  2013.     i have deleted the `volatile' for the parameters which are pushed in
  2014.     the first asm statement. this gives slightly better code, and i
  2015.     don't think that it causes any harm, because the stack pointer isn't
  2016.     changed yet.
  2017.  
  2018. dirent.c:: andreas schwab
  2019.     function opendir()
  2020.     the dirent list should be linked forward, so that `ls +sort none'
  2021.     gives the correct order.
  2022.  
  2023.     i have also slightly improved the closedir function (i like double
  2024.      pointers :-)
  2025.  
  2026. everywhere:: ++jrb
  2027.     convert to conditional macros _PROTO() style for all protos.
  2028.  
  2029. open.c, *scanf*.c, *printf*.c:: ++jrb
  2030.     convert all these to true <stdarg.h> style for var args
  2031.     instead of faking them out. get rid of the #ifdef __SRC__
  2032.     kludges everywhere (i think these os only one instance
  2033.     left for which there really is'nt a clean workaround).
  2034.  
  2035. everywhere:: ++jrb
  2036.     sync in with mntlib #9. change all _PROTO to __PROTO and
  2037.     _EXTERN yo __EXTERN. Also, use that compiler.h
  2038.     ers: note i added cplusplus too.
  2039.  
  2040. st-out.h:: ++jrb
  2041.     add defn for A_LNAM a gst compat long symbol (activated by ld -G)
  2042.  
  2043. atof.c:: ++jrb
  2044.     ok my arm got twisted enough: make the return pointer
  2045.     char ** even though you pass it a const char *.
  2046.     (another shining example of design by committee).
  2047.     adjust casts.
  2048.  
  2049. scanf.c:: ++jrb
  2050.     shut the compiler up with casts
  2051.  
  2052. localtim.c:: ++jrb
  2053.     make indst take a const pointer as it should.
  2054.     adjust casts.
  2055.  
  2056. qsort,c:: ++jrb
  2057.     adjust a few casts
  2058.  
  2059. strftime.c:: michal
  2060.     replaced file with code from michal. thanks!
  2061.  
  2062. atof.c:: ++jrb
  2063.     use HUGE val from math.h
  2064.  
  2065. sbrk.c:: ++jrb
  2066.     round up size passed to HeapAlloc to the next octet (same min
  2067.     alignment as in malloc()). It was possible for the heap
  2068.     to become unaligned. Thanks for michal jaegermann for catching
  2069.     this.
  2070.  
  2071. keycodes.h:: michal
  2072.     add scan codes for shifted func keys (i did'nt even know
  2073.     they were any). thanks michal.
  2074.  
  2075. doprnt.c:: michal
  2076.     Characters from formats which are echoed literally
  2077.     are not counted.
  2078.     Formats 'g' and 'G' do not pay attention that some significant 
  2079.     digits were possibly produced in an integer part and are ready
  2080.     to insert any numbers of 0's before next non-zero will be reached.
  2081.     Thanks michal.
  2082.  
  2083. limits.h:: andreas
  2084.     When char unsigned, define the char limits appropriately.
  2085.  
  2086. limits.h, stat.c, dirent.[ch], unx2dos.c, sym*.c: andreas
  2087.     your latest updates introduced a bug in unx2dos.c: in limits.h
  2088.     NAME_MAX is defined to _POSIX_NAME_MAX, which is 14, but in unx2dos.c
  2089.     NAME_MAX is used to dimension the internal arrays for the file name
  2090.     conversion. thus if you pass an file name with a length of at least
  2091.     14, some very dangerous things happen. it took me some hours of
  2092.     debugging to find it out. 
  2093.  
  2094.     Thanks andreas, i changed all dependencies of NAME_MAX in
  2095.     the library to LIB_NAME_MAX, so that for instance the MiNT
  2096.     library can define it appro for the library. the def of
  2097.     LIB_NAME_MAX is 32, since that is what it was assumed as.
  2098.         Anything less will blow up stuff in unx2dos as andreas
  2099.     pointed out, and also in dirent.c, symdir.c and stat.c.
  2100.  
  2101. RENAME:: frank
  2102.     _fixunsd.s -> fxunsd.s
  2103.  
  2104. RENAME:: ++jrb
  2105.     all over in the pml lib and include files:
  2106.         pmluser.h ->  math.h
  2107.  
  2108. atof.c, strtol.c, strtoul.c:: michal
  2109.     If you will look closer at strtod function you will find out that,
  2110.     contrary to ANSI specifications, there is no way to tell if a
  2111.     string passed to it was "0.0", or a string like "+" or "-" or
  2112.         consisting only from a white space.  The problem is that it does
  2113.     not set *endptr to nptr, even if a conversion was not really performed.
  2114.     It will also happily accept something like that "0.0.0.0"
  2115.     without stopping at the second dot.
  2116.  
  2117.     A similar bug affects also strtol and strtoul (and I do not know
  2118.     what possibly else).
  2119.  
  2120. osbind.h:: frank
  2121.     the new TT defs were returning int instead of short
  2122.  
  2123. stdio.h:: jrb
  2124.     change getc to a # define instead of an inline when !__NO_INLINE__
  2125.     this keeps gdb much happier, and also produces better code in
  2126.     some situations (but never worse).
  2127.  
  2128. unistd.h:: ++jrb
  2129.     add proto for system()
  2130.  
  2131. all over:: ++jrb
  2132.     fix up for -Wall: add casts, include files, add/sub protos etc
  2133.  
  2134. strtol.c, strtoul.c:: michal
  2135.     arrrgh! the above changes at Patchlevel 66 broke these. Michal fixed
  2136.     it, and also extended them for ansi conformance to accept  bases
  2137.     between 2 and 36 and 0. NOTE: if you built gcc @ patchlevel 66,
  2138.     please BUILD IT AGAIN. Due to broken strto*l the code will be wrong.
  2139.  
  2140. atof.c:: michal
  2141.     removed possibility of an infinite loop
  2142.  
  2143. ident.c:: ++jrb
  2144.     make it hold a static string identifying the Patchlevel so that ident(1)
  2145.     can pick it up
  2146.  
  2147. mincl:: ++jrb
  2148.     add ident.o target
  2149.  
  2150. perror.c: michal
  2151.     adjust strings for EDOM and ERANGE to correspond to <errno.h>
  2152.  
  2153. perror.c:: ++jrb
  2154.     - calculate sys_nerr based on sizeof sys_errlist
  2155.     - no need to check for return value of strerr for null
  2156.  
  2157. textio.c:: michal
  2158.     - a buffer with only CRs would call read() with 0 bytes to read,
  2159.     and the resulting zero count (correctly) returned by read() gets
  2160.     interpreted as an EOF. Thanks michal!
  2161.  
  2162. strtol.c strtoul.c:: michal ++jrb
  2163.     fix it up. should be close to ansi requirements, sans some debatable
  2164.     cases like where the endptr be for "0xGXXXX".
  2165.  
  2166. crt0.c:: ++jrb
  2167.     get rid of unused label
  2168.  
  2169. printf*, scanf*:: ++jrb
  2170.     fix up protos. note we fake the _scanf/_doprnt protos to fit
  2171.     the situation.
  2172.  
  2173. malloc.c:: ++jrb
  2174.     dummy should always be there to avaopi bra with zero offset
  2175.  
  2176. textio.c:: michal
  2177.     fixup the case causing premature EOF when read returned a good count
  2178.     but nbytes became 0 because it was skipping over \r's.
  2179.  
  2180. chdir.c, chmod.c, dirent.c, mkdir.c, open.c, rename.c, rmdir.c, spawnve.c,
  2181.  stat.c, symdir.c, symlink.c, system.c, unlink.c, utime.c, lib.h:: ++jrb
  2182.     use unx2dos() instead of _unx2dos, similarly dos2unx() instead
  2183.     of _dos2unx(). that way if the user re-vectors the mapping functions
  2184.     the users routines gets called.
  2185.  
  2186. unx2dos.c:: ++jrb
  2187.     maybe we should be checking bounds on the filenames against
  2188.     _LIB_NAME_MAX. i dunno, this is not pascal, soo GIGO :-)
  2189.  
  2190. stdio.h:: ++jrb
  2191.     use safe def for __fp
  2192.  
  2193. ---------------------------------- Patchlevel 68 ---------------------------
  2194.  
  2195. read.c:: andreas
  2196.     echo chars >= 0x80 as normal characters for users with national
  2197.     chars.
  2198.  
  2199. sscanf.c, fprintf.c:: andreas
  2200.     delete spurious arg decl
  2201.  
  2202. device.h:: ++jrb
  2203.     define mkdev/major/minor
  2204.  
  2205. device.c:: ++jrb
  2206.     NEW FILE, this code was previously in unx2dos.c, but it needs
  2207.     to be seperate so that people can see it (and use it :-).
  2208.  
  2209. mincl:: ++jrb
  2210.     add target for device.o
  2211.  
  2212. all*.h:: ++jrb
  2213.     add in extern "C" {} 's for g++
  2214.  
  2215. ---------------------- PatchLevel 69 -----------------------------
  2216.  
  2217. bcmp.c, bzero.c, div.c, malloc.c, read.c, sbrk.c, strchrc.c,
  2218. strrchr.c, unlink.c, write.c:: andreas
  2219.     equivalence names with .stabs, rather than the old dirty trick
  2220.     which could not guarantee that a string constant would not
  2221.     be generated by the compiler before the entry point of the
  2222.     code that the label was being equvalenced to. Neat idea!
  2223.  
  2224.  
  2225. gmon.c: andreas
  2226.     clear histo buffer (dont depend on a clear bss)
  2227.  
  2228. gprof/gprof.c:: andreas
  2229.     fix up for long GST symbols (aka gcc -G)
  2230.  
  2231. fscanf.c:: ++jrb
  2232.     add vscanf(), vfscanf()
  2233.  
  2234. sccanf.c:: ++jrb
  2235.     add vsscanf()
  2236.  
  2237. stdio.h:: ++jrb
  2238.     add protos for v*scanf()
  2239.  
  2240. setjmp.h:: ++jrb
  2241.     dont proto catch/throw for g++
  2242.  
  2243. ---------------------- PatchLevel 70 -----------------------------
  2244.  
  2245. makefile.??, gmakefil.??:: ++jrb
  2246.     i forgot these, organize them better (thanks allan)
  2247.  
  2248. ---------------------- PatchLevel 71 -----------------------------
  2249.  
  2250. strtol.c, strtoul.c:: michal
  2251.     fix up for case "0xGYYY" (0x followed by invalid hex digits)
  2252.  
  2253. fflush.c:: ++jrb
  2254.     when _IOREAD and lseek fails on a device (_IODEV), ignore it.
  2255.  
  2256. signal.c:: ++jrb
  2257.     - __check_signal should be an extern (it is declared in console.c
  2258.     or xconsole.c when using termcap).
  2259.     - make __check_signal counting for  either or !SIG_IGN
  2260.  
  2261. fcntl.c:: ++jrb
  2262.     new file, limited implementation of fcntl() functionality
  2263.     fcntl cmds F_DUPFD, F_GETFD, F_SETFD, F_GETFL, F_SETFL
  2264.     note: DUPFD has very limited semantics, about all we can do in TOS
  2265.           GET/SETFL: get and set the __open_stat flags, unlike unix
  2266.           semantics for these calls.
  2267.  
  2268. close.c, fcntl.h, spawnve.c:: ++jrb
  2269.     add support for close on exec fcntl flag.
  2270.  
  2271. mincl:: ++jrb
  2272.     add fcntl.o target
  2273.  
  2274. write.c:: ++jrb
  2275.     add support for O_APPEND flag. (seek to end before each write).
  2276.  
  2277. null.c:: ++jrb
  2278.     new file, implemntation of /dev/null using plug'n play device
  2279.         interface. use install_device() before using device to install
  2280.     /dev/null as a legitimate device.
  2281.  
  2282. stat.c:: ++jrb
  2283.     check for device in fstat, pass full unixname to stat if so.
  2284.     stat already handled devices.
  2285.  
  2286. mincl:: ++jrb
  2287.     add target for null.o
  2288. ---------------------- PatchLevel 72 -----------------------------
  2289.  
  2290. symdir.c: andreas
  2291.     delete the .dir file if there are no links
  2292.     some cleanups in _cache_lookup (yes, it produces some fewer
  2293.     bytes of code :-)
  2294.  
  2295. unx2dos.c: andreas
  2296.     change the dot conversion strategy
  2297.     the old code had difficulties with filenames of the form
  2298.     asdfgh.tar.Z:
  2299.     _adjust("asdfgh.tar.Z") -> "ASDFGH,T.Z", the linked-to name
  2300.     becomes "asdfgh.t.z". but when later retrieved, _adjust is
  2301.     called with the linked-to name
  2302.     _adjust("asdfgh.t.z") -> "ASDFGH.T,Z"
  2303.     with the new coding:
  2304.     _adjust("asdfgh.t.z") -> "ASDFGH,T.Z"
  2305.     there are yet some problems with filenames ending in '.', the
  2306.     period will be lost after conversion
  2307.  
  2308. crt0.c:: ++jrb
  2309.     revert back to testing A0 (instead of SP) after controversy on the net.
  2310.     packers will just have to fix themselves.
  2311.     in addition to testing A0 check long A0@(36) (parents basepage). for an
  2312.     acc this should be NULL.
  2313.  
  2314. crt0.c:: frank celler
  2315.    before fixing up env if launched from the desktop, be careful that this
  2316.    is not really the value of a env variable with a NULL value.
  2317.  
  2318. fcntl.h:: ++jrb
  2319.     adjust constants to match MiNT.
  2320.  
  2321. console.c:: Scott Kolodzieski (uunet!sparc1.stevens-tech.edu!scott )
  2322.     new function flush_key_buff(): enables you to stuff the
  2323.     currently accumulated (in the system)  chars to the console
  2324.     buffer. this is important in the situation
  2325.     where you do a fork(), and chars accumulate while in the child
  2326.     process.
  2327.  
  2328. ctype.h:: michal
  2329.     make sure isprint/isgraph dont become true for chars > 0x7f
  2330.     (they were before). thanks michal.
  2331.  
  2332. symdir.c:: scott
  2333.     _del_symdir_cache(): routine to flush out symdir cache. please
  2334.     note the interaction between symdir cache and unx2dos before
  2335.     using this.
  2336.  
  2337. crt0.c:: andreas 
  2338.     the amount of space for the environment and the arguments reported by
  2339.     the function is sometimes four bytes too small, so that the first
  2340.     malloc() clobbers the NULL pointer at the end of the argument list.
  2341.     this is a bad idea especially for programs which rely on this NULL
  2342.     pointer (which is completely legal).
  2343.  
  2344. fork.c:: andreas
  2345.     there is a subtle bug in _fork (fork.c). suppose you are doing
  2346.     something like this (which is essentially what gnumake does):
  2347.  
  2348.   if ((pid = vfork()) == 0)
  2349.     {
  2350.       /* children side */
  2351.       do_something();
  2352.       execv(...);
  2353.     }
  2354.   else
  2355.     {
  2356.       /* parent side */
  2357.       /* ... */
  2358.     }
  2359.  
  2360.     the problem is, if do_something() does too much malloc()'s, more
  2361.     memory must be fetched from TOS (via sbrk()) and is inserted into the
  2362.     free memory list by malloc(). but later on the parent's side, this
  2363.     memory is no more valid, but still will be returned by malloc(). in
  2364.     the case of gnumake, it gets overwritten by subsequent fork()'s and
  2365.     *bang*. here it is read_symdir (symdir.c) which sometimes wants too
  2366.     much memory (it is called when the program to be executed is searched
  2367.     through PATH).
  2368.     the solution i suggest is to malloc() a big block and free() it again
  2369.     so that there is enough memory left to be handled by malloc(), without
  2370.     having to sbrk() more until the "child" process does the execv(). i
  2371.     have tested this with gnumake running it over night (making TeX fonts)
  2372.     and no more bombs had appeared yet :-)
  2373.  
  2374. pipe.c:: Scott Kolodzieski (uunet!sparc1.stevens-tech.edu!scott )
  2375.     implementation of pipe for TOS. thanks scott! 
  2376.     everyone, do yourself a favor and check out scotts port of
  2377.     bash. its great!
  2378.  
  2379. close.c, open.c, fcntl.h:: scott
  2380.     chnages to support pipes.
  2381.  
  2382. unx2dos.c:: ++jrb
  2383.     translate /dev/D\foo correctly. the code was looking
  2384.     for only '/' after /dev/D (after the drive char).
  2385.  
  2386. memcpy.c:: ++jrb
  2387.     stab hack in memmove() at bill shrokas suggestion. the
  2388.     memcpy() handled overlap, so its ok.
  2389.  
  2390. string.h:: ++jrb
  2391.     add proto for memmove()
  2392.  
  2393. malloc.c:: realloc() michal
  2394.     if space cannot be allocated by realloc, the orig object
  2395. remains unchanged (and a NULL is passed back).
  2396.  
  2397.  
  2398. ---------------------------- Patchlevel 73 ---------------------------
  2399.  
  2400. popen.c:: ++jrb
  2401.     use tmpnam() to get temp filename. That way $TEMP || $TMPDIR
  2402. get looked up.
  2403.  
  2404. main.c:: ++jrb
  2405.     moved clearing of errno to just before calling main(). otherwise
  2406. somehow is was !=0 at the start of main() in some cases.
  2407.  
  2408. unlink.c:: scott
  2409.     i cant believe this was still lurking in there. Thanks scott!!
  2410.     if the file to be unlinked was open, and we put it in the
  2411.     atexit chain, we were'nt strduping the filename, as a result
  2412.     all filenames in the chain were pointing to the same loc.
  2413.     arrgggh! now strdup() the name, and free it in do_deletes. if
  2414.     the strdup() fails, link it in the chain with a null filename,
  2415.     and in do_deletes() just skip over entries with null
  2416.     filenames. we need to do this as we cannot un-atext the entry,
  2417.     nor do we want to as they may be others in the chain before
  2418.     this one, or successive attempts may succeed.
  2419.  
  2420. main.c:: ++jrb
  2421.     call the atexit functions after closing all the open files.
  2422.     this is essential if the deferred unlinks() etc are going to
  2423.     work.
  2424.  
  2425. binmode.c:: ers
  2426.     new file. as per mntlib pl 13, __default_mode__ is now a 
  2427.         global that the user may define. if not defined by the user
  2428.     it gets picked up from here, with a default value of 0 (text mode)
  2429.     the user may now define __default_mode__ = IOBIN; and that
  2430.     way stdin etc get opened in binary mode. thanks eric.
  2431.  
  2432. fdopen.c fopen.c main.c:: ers
  2433.     adjustments for __default_mode__.
  2434.  
  2435. mincl:: ++jrb
  2436.     add target for binmode.o
  2437.  
  2438. localtim.c:: ers
  2439.     sync with mintlib, use symbolic constants
  2440.  
  2441. main.c,spawnve.c,findfile.c: ers
  2442.       when starting up, convert the environment variable PATH to
  2443.       POSIX form (i.e. using ':' as a separator); when execing a
  2444.       new program, convert back to old form so old programs will
  2445.       work correctly. thanks eric.
  2446.  
  2447. fread.c:: jeffrey jackson (jgj@ssd.csd.harris.com)
  2448.     fread was'nt returning EOF on large reads. thanks jeffrey.
  2449.  
  2450. mktemp.c rename.c symlink.c:: ++jrb
  2451.     save errno around calls to access()
  2452.  
  2453. symlink.c:: jeffrey
  2454.     the length returned was wrong because we were doing a strncpy
  2455.     before strlen.
  2456.  
  2457. main.c:: ++jrb
  2458.     for stdin/out/err set open_stat[].filename to the unix device
  2459.     so that fstat() works. thanks to jeffrey for discovering this.
  2460.  
  2461. pipe.c, close.c::  scott
  2462.     minor fixes for pipes. bash-1.10 works real well now.
  2463.  
  2464. stat.c: jeff
  2465.     handle the case for fstat() when stdin/out etc are re-directed.
  2466.     (ie: open_stat[].filename == NULL).
  2467.  
  2468. unx2dos.c:: jeff
  2469.     overwrite __link_to only once when following links, so that
  2470.     lstat() works correctly.
  2471.  
  2472. symlink.c:: jeff
  2473.     readlink didn't work for symbolic links in root file system if
  2474.     the passed name had the slash.  This was because the slashed 
  2475.     was nulled to create the directory name of the file (boundry
  2476.     condition type bug).
  2477.  
  2478. scanf.c:: ++jrb
  2479.     %n was'nt storing the # of chars read in so far, but was storing
  2480.     number of conversions done. thnaks for allan pratt  for reporting
  2481.     this.
  2482.  
  2483. scanf.c:: ++jrb
  2484.     old one had too many subtle problems. replaced with one from
  2485.     gnu libc with a few subtle corrections, and also a bug fix.
  2486.         NOTES:
  2487.     - interface is different from equivalent gnuC lib function
  2488.           it was munged to match our old _scanf().
  2489.     - if __NO_FLOAT__ is defined then the floating point stuff
  2490.       gets nuked (for iio*.olb) as per our old scanf.c.
  2491.  
  2492.        It is very important to read and understand the GNU Library General 
  2493.        Public License. It specifies rights and conditions that are different
  2494.       from the GNU copyleft.
  2495.  
  2496. atof.c:: ++jrb
  2497.     strtod() was leaving the pointer one char too far when input
  2498.     had a tailing 'e' (for example after 100ergs, the endptr would
  2499.     be pointing to 'r' rather than 'e').
  2500.  
  2501. scanf.c:: ++jrb
  2502.     had to hack it quite a bit to get out bugs. the regression test
  2503.     is great now!
  2504.  
  2505. crt0.c:: ++jrb
  2506.      More meanings for _stksize (thanks to eric and allan for the feedback)
  2507.  
  2508.     _stksize            meaning
  2509.       -4L        keep 3/4, free 1/4, malloc from own heap
  2510.       -3L        keep 2/4 (1/2), free 1/2 malloc from own heap
  2511.       -2L        keep 1/4 of memory, free 3/4, malloc from own heap
  2512.  
  2513.     NOTE: all of the following will do malloc from Malloc() first,
  2514.     when that fails, malloc() will do further mallocs from
  2515.     our own heap. This lets us use the maximum amount of
  2516.       memory in traditional ST's as well as newer split address
  2517.     STs.
  2518.  
  2519.       -1L        keep all of memory (except MINFREE at top) and do
  2520.             mallocs from own heap, with heap grown upwards towards
  2521.             stack, and the stack growing down towards heap,
  2522.             with a minimum slush between them so that they
  2523.             dont meet (only checked while malloc'ing). With
  2524.             this model, further spawning is not possible, but it is
  2525.             well suited for programs such as gcc-cc1 etc.
  2526.             Thanks to Piet van Oostrum & Atze Dijkstra for this idea
  2527.  
  2528.     0L        keep minimum amount of memory. this is also the
  2529.             case when _stksize is undefined by the user.
  2530.     1L        keep 1/4 of memory, free 3/4 ( as in Alcyon GEMSTART)
  2531.     2L        keep 2/4 (1/2), free rest
  2532.     3L        keep 3/4, free 1/4
  2533.     other        keep that many bytes
  2534.     -other        keep |other| bytes and malloc from own heap
  2535.  
  2536.  
  2537.     Also note that when _initial_size is specified, malloc happens from own
  2538.     heap only.
  2539.  
  2540. crt0.c:: ++jrb
  2541.     New convention for ACCs: (the old convention is still supported):
  2542.  
  2543.     If _heapbase is not specified by the user, _stksize bytes will
  2544.     be Malloc()'ed from the system, and _heapbase will be set to
  2545.     this area, and sp will be set to the top of the allocated
  2546.     area. All malloc()'s of course will happen from this local heap.
  2547.  
  2548.     The old convention for ACCs where the _heapbase and _stksize
  2549.     were specified, and sp was set to _heapbase+_stksize will
  2550.     continue to work.
  2551.  
  2552. malloc.c, sbrk.c:: ++jrb
  2553.     implement _split_mem for _stksize >= -1L. get mem from
  2554.     Malloc first, after that is exhausted, start carving out of
  2555.     own heap (the heap will be in the other address space of the
  2556.     split address space). (ie: other to the one the program is
  2557.     launched in). The way this is done is that when _stksize >= -1L
  2558.     in crt0.c the vars _split_mem and _heapbase are set in crt0.c.
  2559.     then whenever we sbrk, we first check _split_mem, which if true
  2560.     causes us to Malloc(). Then when Malloc() fails, and if _split_mem
  2561.     was on, we turn it off and that causes sbrk() to start allocing from
  2562.     heap.
  2563.  
  2564. crt0.c:: ++jrb
  2565.     in _start1() the local vars and args MUST be in registers because
  2566.     we are playing games with SP and the FP. to ensure this use
  2567.     __asm("REG") facility of gcc. thanks allan.
  2568.  
  2569. isatty.c:: ++jrb
  2570.     put in a check so that PRN: always returns false. i believe
  2571.     that this will fix the problem of GS and gnuplot,
  2572.     where fwrite() to a file opened in binary mode to PRN: was munging
  2573.     the bytes on the way to the printer. Unfortunately, i dont
  2574.     have a printer attached to my ST to check.
  2575.     Tim says its ok now. GS works!
  2576.  
  2577. unistd.h, mkdir.c:: andreas schwab
  2578.     mkdir takes a second mode argument (currently ignored).
  2579.     thanks andreas.
  2580.  
  2581. basepage.h:: ers
  2582.     make undocumented parts of the BP hard to get at.
  2583.  
  2584. compiler.h:: ers
  2585.     as per mntlib PL16. note that wchar_t is now an int.
  2586.  
  2587. time.h:: ers
  2588.     per mntlib pl 16
  2589.  
  2590. sys/timeb.h:: ers
  2591.     new file
  2592.  
  2593. timeoday.c:: ers
  2594.     New file.
  2595.     New BSD-ish ftime(), gettimeofday() and settimeofday() system calls.
  2596.  
  2597. mincl:: ers
  2598.     add target for timeoday.
  2599.  
  2600. spawnve.c:: ers
  2601.     use TOS_ARGS instead of NCARGS
  2602.  
  2603. pipe.c:: ers/scott
  2604.     Eric beet down the MiNT/PIPE bug, and I must say with two trivial 
  2605.     changes the dup2/pipe interface works quite well. Under MiNT
  2606.     file handles are not automatically shared with children. So
  2607.     the dup2 in bash/emacs was failing.
  2608.  
  2609. getpass.c, mincl, unistd.h :: ers
  2610.     new file from mintlib for getpass(). Add target to mincl. Add
  2611.     proto to unistd.h. Note: you need to put the final '\n' yourself,
  2612.     after the call to getpass().
  2613.  
  2614. getpass.c:: ++jrb
  2615.     Null terminate return string (was being passed back with \n)
  2616.     If fget retuns a Null pass back Null (per man on the sun).
  2617.  
  2618. gmon.c:: ++jrb
  2619.     we collectively decided that all xbra's should be chained via
  2620.     the next's. make adjustments to unlink_handler.
  2621.  
  2622. ---------------------------- Patchlevel 74 ---------------------------
  2623.  
  2624. scanf.c:: Michael Ritzert
  2625.     - incorrect return value if fewer data items than specified
  2626.     could be read: the supplied _scanf always returns -1 in this case.
  2627.     Instead, it should return EOF if the error occured before 
  2628.     the first data item to be read and the number of items
  2629.         read with success later on.
  2630.     - the %c format passes the character following the one to be read.
  2631.  
  2632. fscanf.c:: ++jrb
  2633.     #define fungetc to ungetc for pre Ansi sunOS 4.0.*
  2634.  
  2635. ctype.[ch]:: andreas
  2636.     allow negative characters (also handles 0xff correctly)
  2637.  
  2638. fopen/fdopen:: andreas
  2639.     set errno to EMFILE if there are no more FILE slots free
  2640.      (gawk uses it)
  2641.  
  2642. fputc:: andreas
  2643.     don't return EOF if c == (signed char)0xff
  2644.  
  2645. malloc.c:: andreas
  2646.     split memory didn't work
  2647.     the memory allocation routines if using the split memory
  2648.     model, sbrk can return values which are out of order, due to switching
  2649.     from system heap to own heap.
  2650.  
  2651. lstat:: andreas
  2652.     unx2dos already stored the link flags in __link_flags; no
  2653.      need to call unx2dos twice
  2654.  
  2655. system:: andreas
  2656.     command line argument can be arbitrary long, hope no longer
  2657.     than BUFSIZ
  2658.  
  2659. unx2dos:: andreas
  2660.     the link contents can be a full pathname in symbolic links
  2661.  
  2662. write.c:: andreas
  2663.     handle chars with high bit set correctly
  2664.  
  2665. fcntl.h:: andreas
  2666.     GEMDOS returns file handles <= 80 (for TOS 1.4, don't know
  2667.     about newer TOS's)
  2668.  
  2669. main.c:: andreas
  2670.     indices into __open_stat were mixed with file handles.
  2671.  
  2672. system.c:: frank
  2673.     skip over quotes.
  2674.  
  2675. pwd.h, getpw.c:: frank, ++jrb
  2676.     adjust types for uid and gid. they should be uid_t and gid_t 
  2677.     respectively.
  2678.  
  2679. pipe.c:: ++jrb
  2680.     cleanup: get rid of -Wall warnings.
  2681.  
  2682. localtim.c:: ++jrb
  2683.     if the time given is weird, return the epoch. this is a questionable
  2684. fix: we used to return NULL, but that seems to cause problems, as things
  2685. that use the pointer returned by localtime() never seem to check for
  2686. the possibility of a NULL. my handy ANSI reference is mum on what to
  2687. do when the  time given is weird. this was causing zoo to blow up in
  2688. zoosrc/nixtime.i when trying to archive files with weird timestamps (some
  2689. people seem to have a weird kbd processor that time warps!).
  2690.  
  2691. ostruct.h:: Bill Shroka
  2692.     NEW file. it contains most of the popular OS (non Aes/Vdi) structures
  2693.     Thanks bill: this is a good beginning to this file, it more or
  2694.     less corresponds to franks Documentation/varcard.tex. We can add
  2695.     on more stuff as needed.
  2696.  
  2697. osbind.h:: Bill Shroka
  2698.     use <ostruct.h>
  2699.  
  2700. pipe.c:: ++jrb
  2701.     All fprintf() in here needed to be conditional upon DEBUG. Thanks
  2702. to michal for finding this. his code was unexpectedly pulling in all
  2703. kinds of stuff due to external references tp fprintf() here.
  2704.  
  2705. pipe.c, close.c:: ++jrb
  2706.     take out direct call to pipeclose() from close to avoid pulling
  2707. in all the pipe stuff into programs that dont use pipes. instead
  2708. go thru a pointer that is initially nulled, and if the program calles
  2709. pipe() is patched in with the address of pipeclose(). this way only the code
  2710. that actually uses pipes will link in the pipe code.
  2711.  
  2712. crt0.c:: ++jrb
  2713.     cleanup.
  2714.  
  2715. float.h: mjr
  2716.     cleanup values to better reflect reality.
  2717.  
  2718.  
  2719. ***** NOTE ***** ***** NOTE ***** ***** NOTE ***** ***** NOTE *****
  2720.  
  2721. _addsubd.s _addsubs.s _divdf3.s _divsf3.s _extends.s _fixdfsi.s _fxunsd.s
  2722. _floatsi.s _muldf3.s _mulsf3.s _normdf.s _normsf.s _truncdf.s modf.s:: mjr
  2723.  
  2724.     NOTE: these .S files replaced with corresponding .CPP files.
  2725.  
  2726.  
  2727. mincl:: ++jrb
  2728.     adjust targets for above
  2729.  
  2730. math-68881.h:: ++mjr
  2731.     removed any error checking code (use the library versions if
  2732.     error checking is required)
  2733.  
  2734. frexp:: ++mjr
  2735.     y = frexp(0,ip) now corectly returns 0 both in y and *ip
  2736.  
  2737.     sfp004 - version written but not tested due to lack of hardware
  2738.     my sfp004 board died, so only a "plausibility test" could be made.
  2739.     most probable sources of bugs: 
  2740.     the fscale instruction has been inserted to the old function body 
  2741.     after the dead of the board.
  2742.     The test if the 1st arg is 0, too.
  2743.  
  2744. doprnt.c:: ++mjr
  2745.     NAN and INFINITY conditions are caught by analysing only the most
  2746.     significant long word (uniqe).
  2747.     this also serves as a workaround to the conversion bug of 
  2748.     gcc-as 
  2749.     (DBL_MAX is converted to 0x7ff00000 0x00000002
  2750.             instead of   0x7fefffff 0xfffffffe
  2751.     ) which sometimes causes doprnt to crash.
  2752.  
  2753. _fixdfsi.cpp:
  2754. _fixunsdfsi.cpp:
  2755.     optional error checking added. 
  2756.     All three situations (no fpu, sfp004, TT) supported.
  2757.  
  2758. _normsf.cpp:
  2759. _divdf3.cpp:
  2760. _divsf3.cpp:
  2761.     returns signed infinity in case of an exception.
  2762.     if option ERROR_CHECK is enabled:
  2763.     _errno is set to ERANGE.
  2764.     The EDOM situation 0/0 is not tested explicitly.
  2765.     All three situations (no fpu, sfp004, TT) supported.
  2766.  
  2767. _normdf.cpp:
  2768.     if option ERROR_CHECK is enabled:
  2769.     _errno is set to ERANGE.
  2770.     message is printed.
  2771.     value of ERANGE corrected to 62 (was 34 = EPATH)
  2772.  
  2773. ldexp.cpp:
  2774.     value of ERANGE corrected to 62 (was 34 = EPATH)
  2775.     optional ERROR_CHECK inserted.
  2776.     underflow is no longer considered an error condition to
  2777.     stay consistent with pml.
  2778.     if ERROR_CHECK is enabled, a message is printed on overflow.    
  2779.  
  2780. _addsubd.cpp:
  2781. _addsubs.cpp:
  2782. _muldf3.cpp:
  2783. _mulsf3.cpp:    ++mjr:
  2784.     sfp004 code and software floating point code merged into one file.
  2785.  
  2786. ---------------------------- Patchlevel 75 ---------------------------
  2787.  
  2788. getopt.c, random.c, ctime.c:: michal
  2789.     get rid of dependency on doprnt().
  2790.  
  2791. random.c:: ++jrb
  2792.     warn about needing an ANSI pre-processor for str concat.
  2793.  
  2794. bcopy.s, memcpy.c:: ++jrb
  2795.     DELETE these files.
  2796.  
  2797. bcopy.s, memcpy.s:: michal
  2798.     replace with these. note now memcpy and memmove are NOT
  2799.      equivalenced. memmove will correctly handle overlap, while memcpy
  2800.      will not.
  2801.  
  2802. bcopy.s, memcpy.s:: ++jrb
  2803.     make the cnt check unsigned.
  2804.  
  2805. string.h:: ++jrb
  2806.     adjust protos for bXXXX() functions to size_t for counts.
  2807.  
  2808. mincl:: ++jrb
  2809.     adjust dependcy for memcpy()
  2810.  
  2811. memcpy.s:: ++jrb
  2812.     was missing label setup:
  2813.  
  2814. osbind.h:: michal
  2815.     Add new Waketime() binding for ST Book.
  2816.  
  2817. osbind.h:: Warwick@cs.uq.oz.au
  2818.     change cast for Kbdvbase() as g++ wont grok void (**)
  2819.  
  2820. ctype.[ch]:: ers/++jrb
  2821.     change _ctype[] back to pointer so that locales may switch pointers.
  2822.     keep andreas's changes for unsigned index into ctype in. that
  2823.     way EOF is covered too. (by the 0xff entry).
  2824.  
  2825. compiler.h file.h unistd.h assert.h ostruct.h:: ++jrb
  2826.     sync up with mntlib pl18 changes for soz etc.
  2827.  
  2828. bcmp.c, bzero.c, qsort.c: ers
  2829.     Ansification (casting lvalues is a no-no :-).
  2830.  
  2831. doprnt.c getcwd.c memccpy.c mkdir.c tmpnam.c fdopen.c
  2832. getenv.c memchr.c sbrk.c ftw.c memcmp.c sleep.c crt0.c
  2833. getbuf.c malloc.c memset.c sprintf.c strdup.c system.c sysvar.c:: ++jrb
  2834.     merge in soz portability changes as per mntlib 18
  2835.  
  2836. mkdir.c:: ++jrb
  2837.     check for existance before attempting to make per mntlib 18
  2838.  
  2839. doprnt.c:: ++jrb
  2840.     t was not being initialized in one case. do it at the top.
  2841.  
  2842. gnulib2.c:: ++jrb
  2843.     add support routines for gcc-2.0: note that the lib needs
  2844.     to be re-compiled BEFORE you try to compile gcc-2.0,
  2845.     otherwise you will end up chasing your tail!
  2846.  
  2847. ldexp.cpp: mjr++
  2848.     rewrote the sfp code.
  2849.  
  2850. doprnt.c: mjr++
  2851.     fixed my bug in the treatment of NaNs and Infinities. 
  2852.  
  2853. mktemp.c:: ++jrb
  2854.     make mktemp() more MiNT friendly by using pid when __mint.
  2855.  
  2856. ---------------------------- Patchlevel 76 ---------------------------
  2857.  
  2858. memcpy.s:: ++jrb
  2859.     in the upcopy loop setup for the oddeven case, the count was being
  2860.     moved with a movw instead of movl.
  2861.  
  2862. ---------------------------- Patchlevel 77 ---------------------------
  2863.  
  2864. spawnve.c:: Marcus Nick
  2865.     cmlen was'nt being initialized before counting the chars in 
  2866.     args loop.
  2867.  
  2868. osbind.h:: ++jrb
  2869.      -- another re-hack needed for gcc-2.0: the optimization that we
  2870.         used earlier for traps with more than 4 args, making them volatile
  2871.     and using "g" constraints no longer works, because gcc has become
  2872.     so smart! we now remove the volatile, and give "r" constraints
  2873.     (just like traps with <= 4 args). that way the args are evaled
  2874.     before we change the stack under gcc, and at appropriate times
  2875.     put into reggies and pushed (or as in most cases, they are evaled
  2876.     straight into reggies and pushed -- and in even more common cases
  2877.     they are already in reggies, and they are just pushed). not doing
  2878.     this with -fomit-frame-pointer was causing the temps (from evaluing
  2879.     the args) to be created on the stack, but when we changed sp
  2880.     from under gccs feet, the offsets  to the temps ended up being wrong.
  2881.  
  2882. osbind.c:: ++jrb
  2883.     do the same.
  2884.  
  2885. fread.c fwrite.c ioctl.c system.c textio.c
  2886. compiler.h ioctl.h osbind.h ostruct.h stdlib.h:: ++jrb
  2887.     sync with mntlib pl19 changes -- thanks ers
  2888.     osbind.h had incorrect fn# for Xbtimer 
  2889.     other changes mostly for soz compatibility.
  2890.  
  2891. filbuf.c getlogin.c lseek.c read.c:: ++jrb
  2892.     fixed up a few warnings.
  2893.  
  2894. crt0.c:: ++jrb
  2895.     round the temporary stack to a long word boundary.
  2896.  
  2897. minimal.h:: michal
  2898.     tidy up protos
  2899.     (in case you did'nt know <minimal.h> is used to make small executables
  2900.      that dont use any stdio etc. it avoids pulling in _main() and all
  2901.      the stdio, atexit etc etc related code).
  2902.     for instance here is a minimal hello world:
  2903.     #include <minimal.h>
  2904.     #include <osbind.h>
  2905.     main()
  2906.     {
  2907.       Cconws("Hello World\r\n");
  2908.     }
  2909.  
  2910. atof.c:: Michael
  2911.     merge diff for atof
  2912.  
  2913. ---------------------------- Patchlevel 78 ---------------------------
  2914. signal.c, console.c: alexander lehmann
  2915.   fix for a bug where console i/o would get stuck when a interrupt
  2916.   was caught and it occured when the input buffer was not empty.
  2917.  
  2918.  
  2919. fread.c, fwrite.c: alexander lehmann
  2920.   I rewrote fread and fwrite to do CR/LF conversion when in text mode.
  2921.   Additionally I fixed a small bug in eof detection.
  2922.  
  2923.   ( this pertains to the example when you are fread'ing say 20 bytes
  2924.     from a file that contains 18 bytes: in the old coding
  2925.     you would first succeeed with a count of 18, and on subsequent
  2926.     freads you would get eof. In this coding, you get a count of 18
  2927.     and also eof flag:
  2928.     Well this was not really a bug, just when eof shows up. My ansiC
  2929.     doc is mum on this point) -- ++jrb
  2930.  
  2931. ---------------------------- Patchlevel 79 ---------------------------
  2932.  
  2933. gnulib2.c:: ++jrb
  2934.     add gcc 2.0 support routine __fixunssfsi()
  2935.  
  2936. bblink.c:: ++jrb
  2937.     new file to support gcc -tcov (-tcov is not working as yet, but
  2938.     when it does, we are ready!)
  2939.  
  2940. mincl:: ++jrb
  2941.     add targets for above
  2942.  
  2943. doprnt.c:: michal/++jrb
  2944.     had the same problem as osbind for -fomit-frame-pointer, in ICONV
  2945.     change constraints for stuff that is pushed before the sp is reset
  2946.     from "g" to "r".
  2947.     Also, michal optimized ICONV a bit to do the long div only while
  2948.     the number > 65535.
  2949.  
  2950. signal.h sysvars.h
  2951. div.c doprnt.c gmon.c main.c sbrk.c system.c: Michal
  2952.     shut off gcc 2.X warnings.
  2953.  
  2954. ***************  RENAME     **********************************************
  2955.  
  2956.     rename file _floatsi.cpp to _fltsi.cpp
  2957.  
  2958. **************************************************************************
  2959.  
  2960.  
  2961. **********************    REMOVE ******************************************
  2962.         bzero.c, memset.c. memcpy.s
  2963. *************************************************************************
  2964.  
  2965. bcopy.s, bzero.cpp:: alexander lehmann
  2966.     efficient replacements for bcopy/bzero/memmove/memset/memcpy
  2967.  
  2968. bcopy.s:: ++jrb
  2969.     minor adjustment.
  2970.  
  2971. mincl:: ++jrb
  2972.     adjust targets for above
  2973.  
  2974. fread.c:: ++jrb
  2975.     remove redundant cast in 'data=(char*)data + m;' since data
  2976.     is a char * now.
  2977.  
  2978.  
  2979. _cmpdf2.s _cmpsf2.s  _fixsfsi.cpp _fltsisf.cpp gnulib2.c:: andreas
  2980.     * gnulib2.c: nothing needed for gcc-2.0 except __fixsfsi and
  2981.     __floatsisf
  2982.     * _fixsfsi.cpp, _fltsisf.cpp: new files
  2983.     * _cmpdf2.s, _cmpsf2.s: new entry points for gcc2
  2984.     
  2985.     in gnulib2.c i #if 0'ed out the not used portions instead of deleting
  2986.     them, just so that we have a handy cross reference around. also note
  2987.     that at the bottom there is still one new gcc 2.X support routine
  2988.     around.  ++jrb
  2989.  
  2990. _fixdfsi.cpp:: andreas
  2991.     some cleanups
  2992.  
  2993. _floatsi.cpp:: andreas
  2994.      code for __M68881__ was bogus (is this needed anyways?)
  2995.  
  2996. alloca.s:: andreas
  2997.     remove some wasted bytes
  2998.  
  2999. console.c:: andreas
  3000.     (raw_in): allow typeahead (which is only available at GEMDOS level).
  3001.  
  3002. doprnt.c:: andreas
  3003.     -- remove some misuse of NULL; handle %g correctly.
  3004.     -- a version of iconv for -m68020 and also for non __GNUC__
  3005.         -- i merged in earlier iconv change, with one diff: when
  3006.     using the long div, make d1 come out into 'i' by declaring
  3007.     d1 as the reggie for i as andreas had done in his change, rather
  3008.     than use a movw d1, %1 as i had it earlier   ++jrb
  3009.  
  3010. getenv.c putenv.c :: andreas
  3011.     * getenv.c (putenv): put it in separate file as it is independent
  3012.     of getenv
  3013.     * putenv.c: new file
  3014.  
  3015. getuid.c unistd.h:: andreas
  3016.     * getuid.c: use uid_t and gid_t
  3017.     * unistd.h: ditto
  3018.     note that sete?[gu]id() has int as parameter type so that it
  3019.     matches the old-style definition
  3020.  
  3021. mkdir.c:: andreas
  3022.     * mkdir.c: stat() on an already unx2dos'd filename is a no-no (and
  3023.     also wastefull), use Fattrib() instead
  3024.  
  3025. read.c:: andreas
  3026.     (_delchar, str_length): handle ^@ (^@ == (int)0 ++jrb) correctly
  3027.  
  3028. rmdir.c:: andreas
  3029.     rewrite symbolic directory if dir was nonempty
  3030.  
  3031. scanf.c :: andreas
  3032.     improve handling of character class
  3033.  
  3034. stat.c:: andreas
  3035.     allow symbolic link to a deleted path
  3036.  
  3037. strcoll.c string.h :: andreas
  3038.     * strcoll.c: new file, implementation of strcoll and strxfrm that
  3039.     doesn't know about locales
  3040.     * string.h: add proto for strcoll and strxfrm
  3041.  
  3042. strftime.c:: andreas
  3043.     echo unknown format char ala printf (otherwise
  3044.     buf is uninitialized)
  3045.  
  3046. mincl: andreas
  3047.     add target for putenv.o
  3048.     mincl: add taget for strcoll.o
  3049.     adjust gnulib2 targets:
  3050.         add targets for _fixsfsi.o, _fltsisf.o
  3051.         remove targets for _lshrsi3.o,...,_lesf2.o
  3052.  
  3053. compiler.h float.h signal.h stddef.h stdio.h :: andreas
  3054.     avoid warning `cast to pointer from integer of different size'
  3055.     if -mshort.
  3056.  
  3057.     This is 'fixed' in gcc 2.1 (actually we had the fix for gcc 2.0 PL 2)
  3058.     to not issue this warning for 0 being promoted. but andreas's changes
  3059.     are applicable in any case. ++jrb
  3060.  
  3061. unx2dos.c:: ++jrb/ers/michal
  3062.     change default unixmode (if not user specified) from "/" to "/d"
  3063.     this takes care of problems dues to caonicalization of PATH to
  3064.     posix form, where D:\foo is mapped internally to "/dev/D/foo. if
  3065.     there was no 'd' in the default unixmode, then a casual
  3066.     user would be surprised why non-spawning application could'nt
  3067.     find stuff in such PATH's (like when using findfile).
  3068.  
  3069. ---------------------------- Patchlevel 80 ---------------------------
  3070.  
  3071. bcopy.s:: michal
  3072.     I looked at this new bcopy from the latest update and decided to check
  3073.     if it is faster only theoretically or maybe also in practice.  Reason
  3074.     beeing that my friend claimed that he tried a similar code on TT and
  3075.     after much coding it was actually slower.  So I got curious.  Well, at
  3076.     least on my Mega it is faster.  For some cases significantly so.
  3077.     Although nearly twice as big as the previous one.  Still I found that
  3078.     a small change speeds it up BUT in my experiments only for misaligned
  3079.     data.  In such situations I got up to 10% shorter times for a little
  3080.     bit longer data (break-even seems to be around 25 bytes; for
  3081.     smaller sizes the modified code is a tad slower but differences in timing
  3082.     are truly neglibible).  I still wonder why a similar change in a loop
  3083.     control for aligned data did not bring any real speed variations.
  3084.     
  3085.     Another surprise - two tests with branches for the last three
  3086.     bytes are actually better than a tight dbra loop.  This may look
  3087.     quite a bit different on a small instruction cache of 68020.
  3088.  
  3089.     [ jrb: yes, also it will be interesting to see the difference on
  3090.     68k's with loop-mode (is the 010 the only one??)].
  3091.  
  3092. localtim.c:: ++jrb
  3093.     rename dst to _dst and make it non-static. timeoday.c uses it.
  3094.  
  3095. ctype.c:: ++jrb
  3096.     break out toupper(), tolower() into seperate file so that
  3097.     users can re-define these and yet pull in ctype stuff, whout
  3098.     clashing.  (me2 does this).
  3099.  
  3100. toxxx.c:: +=jrb
  3101.     new file comtaining toupper()/tolower()
  3102.  
  3103. mincl:: ++jrb
  3104.     add target for toxxx.o
  3105.  
  3106. mintbind.h:: ++jrb
  3107.     add def for Psigpause() per MiNT 0.95 pl 1
  3108.  
  3109. osbind.h: ers
  3110.     Bconmap should be XBIOS call 0x2c, *not* 0x2b.
  3111.     0x2b is DMAwrite. There's obviously a potential for serious
  3112.     lossage here :-(. (mntlib has the same bug)
  3113.  
  3114. doprnt.c:: ers
  3115.     -- conditionalize prototypes so Sozobon can compile this
  3116.     -- use "+Inf", "-Inf", "NaN" instead of " Infinity ",
  3117.         " -Infinity ", and " Not A Number ". I'm told that
  3118.         ANSI specifies the shorter strings, and some programs
  3119.         rely on these.
  3120.  
  3121. *.h and some *.c:: ers/++jrb
  3122.     merge mntlib and lib headers. a few .c files needed adjustments
  3123.         because of this.
  3124.  
  3125. obstack.c/obstack.h:: ++jrb
  3126.     sanitize the ones from gcc 2.1 distribution for 16/32 ints and
  3127.         add to lib.
  3128.  
  3129. mincl:: ++jrb
  3130.     add target for obstack.c
  3131.  
  3132. bzero/bcmp/bcopy string.h:: ++jrb
  3133.         get rid of the silly old lbXXX aliases.
  3134.         add the MiNT _bxxx() aliases. should be useful with people like
  3135.         the soz 1.33 author who dont distinguish between an int and the size
  3136.         of an addressable object (under the guise of efficiency). big sigh!
  3137.  
  3138. malloc.c:: ++jrb
  3139.     split off realloc and calloc into their own files. put common
  3140.     definitions in lib.h so that it may be included in realloc.c
  3141.     and calloc.c.
  3142.  
  3143. realloc.c/calloc.c:: ++jrb
  3144.     new files.
  3145.  
  3146. mincl:: ++jrb
  3147.     add targets for realloc.o and calloc.o
  3148.  
  3149. lib.h:: ++jrb
  3150.     add common alloc defs
  3151.     cleanup
  3152.  
  3153. mincl: ++jrb
  3154.     in all the rules, change any explicitly specified source filename
  3155.     to $<, so that when VPATH is set the correct thing happens.
  3156.  
  3157. ---------------------------- Patchlevel 80.5 ---------------------------
  3158. *:: ers/++jrb
  3159.     start of merge of mnt/tos libs. all headers done. lots
  3160.     of common files done. lots of minor adjustments all
  3161.     over.
  3162.  
  3163. console.c:: scott
  3164.         We were doning a dev=LOOKUP(handle) in console_write_byte, than again
  3165.         in flush_key_buff()
  3166.  
  3167. eprintf.c:: ++jrb
  3168.     turn say into a routine that calculates the strlen. there was already
  3169.     a mistake there.
  3170.  
  3171. ---------------------------- Patchlevel 81 ---------------------------
  3172.  
  3173. keycode.h, unistd.h:: michal
  3174.     change #if defined() to #ifdef
  3175.  
  3176. *.h:: ++jrb
  3177.     make all decls for alloca consistent
  3178.  
  3179. getlogin.c, lseek.c, qsort.c, gnulib2.c, stat.c:: ++jrb
  3180.     #include <memory.h> for alloca.
  3181.  
  3182. all over:: ers, ++jrb
  3183.     change unx2dos/dos2unx to _unx2dos/_dos2unx to avoid posix names
  3184.     space corruption in the library. not that there is still a user
  3185.     callable unx2dos/dos2unx.
  3186.  
  3187. atol.c:: ers
  3188.     conditionalize proto
  3189.  
  3190. getuid.c:: ers
  3191.     let default uid/gid be root/bin
  3192.  
  3193. lib.h:: ers
  3194.     adjust protos
  3195.  
  3196. gnulib2.c:: alexander lehmann
  3197.     _fixunssfsi(): I did some investigating and discovered that the
  3198.     function did almost always return 0xffffffff. However the function
  3199.     doesn't look wrong in any sense. I rewrote the function a bit
  3200.     (without really changing anything) and now it works. The problem arises
  3201.     from a bug in GCC, that causes certain negative integer constants to
  3202.     become positive when cast to float. e.g. -2^31 (LONG_MIN) becomes
  3203.     2^31. This constant was used in the _fixunssfsi function and caused the
  3204.     problem.
  3205.  
  3206. ---------------------------- Patchlevel 82 ---------------------------
  3207.  
  3208. crt0.c:: ++jrb
  3209.     add extern references to ident strings for all libraries
  3210.     so that the libraries that are linked in have their ident
  3211.     strings linked into the executable. (so that ident <executable>
  3212.     reveals all Patchlevels of all things linked in).
  3213.     For satisfying the references of the libraries that are not linked
  3214.     we include dummy symbols in gnu.olb.
  3215.  
  3216. il.c ic.c iw.c ig.c ip.c:: ++jrb
  3217.     the files containing dummies.
  3218.  
  3219. mincl:: ++jrb
  3220.     add targets for above.
  3221.  
  3222. limits.h: alexander
  3223.     I did some further investigating into the LONG_MIN problem and
  3224.         I found out why the native gcc on my NeXT did create correct
  3225.     code while the ST version didn't. The new gcc installs a limits.h
  3226.     file that first includes the system limits.h and the redefines
  3227.     some of the constants. LONG_MIN is defined as -LONG_MAX-1 which
  3228.     is of course equal to -2<<31, but somehow compiles correctly.
  3229.     I changed the ST limits.h defined the constant the same way and I
  3230.         added the definition for long long limits from the gcc2.x limits.h.
  3231.         This will probably be never used, but it can't hurt, I guess.
  3232.  
  3233. stricmp.c strnicmp.c:: alexander
  3234.     case-insensative verions of strcmp and strncmp. good for
  3235.     TC compatibility.
  3236.  
  3237. mincl:: ++jrb
  3238.     add targets for above
  3239.  
  3240. string.h:: ++jrb
  3241.     add protos for above.
  3242.  
  3243. binmode.c:: ++jrb
  3244.     pull __default_mode__ out into its own module.
  3245.  
  3246. defmode.c:: ++jrb
  3247.     new file, defining __default_mode__, so that it may be pulled in
  3248.     from here when undefined by user. previously it was
  3249.     bundled in with binmode, that caused binmode() to be pulled
  3250.     in along with it.
  3251.  
  3252. mincl:: ++jrb
  3253.     add target for  above.
  3254.  
  3255. fwrite.c:: ++jrb
  3256.     when writing out in text mode was returning len+#of CR's in
  3257.     buffer, instead of just len of buffer. this showed up with
  3258.     ghostscript 2.41. To fix this, we compensate by decrementing
  3259.     the counter `l' when we add a CR  since `l' is incremented
  3260.     at the bottom of the loop. We could have also fixed by checking
  3261.     `wrote_cr' before incrementing `l' but we dont because mostly
  3262.     this condition would be false and we would have more overhead
  3263.     in the common case.
  3264.  
  3265. ---------------------------- Patchlevel 83 ---------------------------
  3266.  
  3267. ioctl.h, signal.h:: ers
  3268.     sync with mntlib changes.
  3269.  
  3270. main.c, ctime.c, getuid.c, lib.h, ltoa.c, sprintf.c:: ers
  3271.     sync with mntlib changes
  3272.  
  3273. frwbin.c:: ++jrb
  3274.     new file containing the default __FRW_BIN__ flag. this flag controls
  3275.     the default  behaviour fread/fwrite:
  3276.       when non-zero, fread/fwrite will not do CR processing
  3277.       even for text mode files (ie: ignore file mode).
  3278.  
  3279.       when zero fread/fwrite is process according to file mode
  3280.  
  3281.     this file is linked in when the user does not specify the variable.
  3282.  
  3283. fread.c, fwrite.c:: ++jrb
  3284.     incorporate flag.
  3285.  
  3286. mincl:: ++jrb
  3287.     add target for frwbin.o
  3288.  
  3289. compiler.h dirent.h float.h math.h mintbind.h osbind.h
  3290. ostruct.h regexp.h setjmp.h stdarg.h tcfloat.h tcmath.h
  3291. unistd.h varargs.h :: ++jrb/ers
  3292.     sync up with mntlib 21_2, mainly changes for Turbo/Pure C
  3293.  
  3294. access.c alphasor.c atof.c bcmp.c bsearch.c calloc.c chmod.c doprnt.c
  3295. findfile.c flonum.h fopen.c fseek.c ftw.c getbuf.c getenv.c getlogin.c
  3296. getopt.c getpid.c getpw.c getuid.c gnulib2.c grp.c lib.h localtim.c lseek.c
  3297. ltoa.c malloc.c putenv.c qsort.c random.c realloc.c  regexp.c sbrk.c setbuf.c
  3298. setvbuf.c strcat.c strchr.c strftime.c strncat.c strncpy.c strrchr.c strtol.c
  3299. strtoul.c system.c sysvar.c time.c timeoday.c tmpfile.c tmpnam.c utime.c
  3300. getcwd.c isatty.c spawnve.c sleep.c :: ++jrb/ers
  3301.     sync up with mntlib 21_2, mainly changes for Turbo/Pure C. nice thing
  3302.     about this merge and the earlier soz/lcc merges is that a lot of
  3303.     lint cleaning took place as a result.
  3304.  
  3305. compiler.h ioctl.h unistd.h signal.h setjmp.h osbind.h mintbind.h
  3306. math.h keycodes.h :: ++jrb/ers
  3307.     sync with mntlib 21_3
  3308.  
  3309. perror.c:: ++jrb/ers
  3310.     sync with mntlib 21_3
  3311.  
  3312. scanf.c:: michal
  3313.     sscanf (test,"%%Page: %d %d\n", &i1, &i2);
  3314.     after "%%" *fc equals 'P' but c was never updated and is still
  3315.     equal '%'.  Therefore test on line 232 fails and no conversions will
  3316.     be performed. [the fix was to get the next char into c after testing
  3317.     for '%' - ++jrb]
  3318.     thanks michal!
  3319.     
  3320. *.s, *.cpp, linea.c crto.c:: howard
  3321.     changes to support baserel code generation.
  3322.  
  3323. Makefile, mincl:: howard
  3324.      New integrated scheme elimiating makefile.16 makefile.32.
  3325.     thanks howard!
  3326.  
  3327. maikefile.16, makefile.32 :: ++jrb
  3328.     delete, no longer needed.
  3329.  
  3330. mintbind.h obsind.h obstack.h
  3331. doprnt.c getpass.c linea.c malloc.c obstack.c regexp.c
  3332. sbrk.c stricmp.c strnicmp.c strrchr.c system.c textio.c :: ers/+=jrb
  3333.     more cleanups from mntlib pl 22 (casts etc from compilers that
  3334.     are more fussy [some really overkill]).
  3335.  
  3336. compiler.h mintbind.h:: ers/++jrb
  3337.     sync up with mntlib pl 23
  3338.  
  3339. difftime.c:: uunet!gnu.ai.mit.edu!entropy
  3340.     operands were backwards
  3341.  
  3342. doprnt.c:: Michael (ritzert@dfg.dbp.de)
  3343.   the g-format does not work correctly. In many circumstances, the output is
  3344.   a huge fp-number which is correct in all the 15 significant digits; but the
  3345.   length of the mantissa is roughly doubled and filled with garbage. This
  3346.   seems to be rounding problem - it occurs more frequently with the 68881,
  3347.   but only when the significant rest of the mantissa is a sequence of zeros.
  3348.   I observed it with  %g %1.6g %1.14g %1.15g.
  3349.  
  3350.   In my opinion, the g-formatter of cvt() and round() should be rewritten.
  3351.   As i don't have the time doing this, i hacked a kludgy fix:
  3352.   I save the original no of digits, keep track of the '.', and cutoff the
  3353.   buffer before the trailing zeros are stripped. At the same time, i supress
  3354.   unreasonable precision, i.e., digs = min( digs, 15 ).
  3355.  
  3356. doprnt.c:: Michael/++jrb
  3357.     Michael had a problem with ICONV when doprnt.o is linked
  3358.     from outside gnu.olb. (i have'nt figured out why this
  3359.     would make a difference). Anyways now there is a 
  3360.     !defined(__NO_INLINE__) around _ICONV so that the C version
  3361.     may be picked istead of the inline asm version.
  3362.  
  3363. ---------------------------- Patchlevel 84 ---------------------------
  3364.  
  3365. doprnt.c:: ++jrb
  3366.     Revert out michaels 15 sig digit hack. causing too many problems
  3367.     (michal jaegermann reports all kinds of failures from gawk, mawk).
  3368.     Revert out DBL_EPSILON hack too..
  3369.     Awaitings michals advise on how to fix mjr's problems...
  3370.  
  3371. _addsub*:: Olaff (flebbe@tat.physik.uni-tuebingen.de)
  3372.     To summarize the changes in both double and float arithmetic:
  3373.  
  3374.     * The "sticky" byte d2.b is now initalized properly. In the former
  3375.     version it was a deterministic random generator.
  3376.  
  3377.     * The rounding is now computed correctly. The rounding bits reside in
  3378.     d3.b.
  3379.  
  3380.     * Due to cancellation effects one get one extra bit. So a conditional
  3381.     jump had to be modified.
  3382.  
  3383.     One extra bug was included in the single precision arithmetic. 
  3384.  
  3385.     * When the routine discovered that shifting can be done by swapping, it
  3386.     shifted the result one  additional digit. 
  3387.  
  3388. _norm*:: Olaff (flebbe@tat.physik.uni-tuebingen.de)
  3389.     round up towards even.
  3390.  
  3391. bcopy.s, bzero.cpp: andreas
  3392.     dont use a4 (for -mbaserel)
  3393.  
  3394. linea.h:: ++jrb
  3395.     linea2() really needs to declare its output (i know its implicit, but
  3396.          unless you put it in the output list, g++ thinks linea2() does
  3397.     not output anthing, and complains on its usage).
  3398.  
  3399. doprnt.c:: ++jrb
  3400.     change condition for unreasonable precision for floats. (it should not
  3401.     have been MAXFRACT only as we do zero padding on the right).
  3402.  
  3403. regexp.c :: ++jrb
  3404.     - include <sys/types.h> instread of <types.h>
  3405.     - fix cast in malloc from (unsigned)  to (size_t) as it should be.
  3406.  
  3407. regexp.c:: ++jrb
  3408.     in regmatch(), there was over-enthusuatic conversion of
  3409.     int to size_t that caused regular expressions to break.
  3410.     please be careful!
  3411.  
  3412.     in the PLUS/STAR case, `no' needs to be a signed entity, other
  3413.     wise the loop is useless.
  3414.  
  3415.     tregex in the library tests showed this up.
  3416.  
  3417. doprnt.c:: ++jrb
  3418.     constraint ("g") on the source operand was wrong for divu. source
  3419.     has to be  data addressable ("dmi" constrain should cover).
  3420.  
  3421. ---------------------------- Patchlevel 85 ---------------------------
  3422.  
  3423. _divdf3.cpp:: olaf
  3424.    prevent the tie rounding case if dividing is not exact.
  3425.      paranoia now says: "Division appears to round correctly"
  3426.      ** requires _normdf Version 1.6.1 or later
  3427.  
  3428. _divmods.s _mulsi3.s _udivmod.s:: ++jrb
  3429.     add c68 labels
  3430.  
  3431. stdarg.h/varargs.h:: uunet!ms2.maus.de!Bjarne_Pohlers (Bjarne Pohlers)/++jrb
  3432.     bjarne reported a problem with an example in the way we were
  3433.     pull off args from the stack. he had a fix that looked good. i
  3434.     went the gcc-way for the same fix, and used __builtin_next_arg()
  3435.     and let the compiler do the right thing. thanks bjarne.!
  3436.  
  3437. _addsubd.cpp _addsubs.cpp _divsf3.cpp _normsf.cpp: Olaf
  3438.     Problems solved:
  3439.       * tie breaking for single precision division
  3440.       * prevent core dump for single precision overflow  
  3441.  
  3442.     Only one flaw is left for single precision arithmetic!
  3443.  
  3444.     I did a rewrite of the add/sub algorithm; now it is about 10-20% faster.
  3445.  
  3446. falcon.h: Howard
  3447.     bindings for Falcon. Thanks howard.
  3448.  
  3449. fread.c:: Andreas
  3450.     With the BSD-like pipes in MiNT 0.96/PL14 one cannot assume, EOF is
  3451.     reached if read() returns less bytes than requested; it could be a
  3452.     short read from a pipe.
  3453.  
  3454.     There's another `feature' in fread: if a big block is read in text
  3455.     mode (!_IOBIN) and the data actually doesn't contain CR's, fread ends
  3456.     up copying the data block onto itself.
  3457.  
  3458. Synch with mntlib Patchlevel 25: ers
  3459.     ioctl.h:
  3460.         ANYP means "no parity", not "any speed"
  3461.  
  3462.     difftime.c: ++entropy@gnu.ai.mit.edu
  3463.         The parameters were reversed. Ouch.
  3464.     bcmp.c: ++hohmuth@freia.inf.tu-dresden.de
  3465.         Change the ODD macro to return a 16 bit value (for
  3466.         Pure C)
  3467.  
  3468.     Following from andreas:
  3469.         compiler.h: for gcc2, use the builtin sizes
  3470.         gemfast.h: add XCONTROL messages and WF_COLOR defines
  3471.         mintbind.h, osbind.h: add the missing definitions
  3472.         screen.h: fix definitions for TT
  3473.         stdio.h: allow 32 open files as does MiNT
  3474.         wait.h (WSTOPPED): use expected value
  3475.  
  3476. ---------------------------- Patchlevel 86 ---------------------------
  3477.  
  3478. _cmpsf2.s _divsf3.cpp _extends.cpp _mulsf3.cpp
  3479. _negsf2.s _normsf.cpp : olaf
  3480.     completed impl of NaN and infinities, even for floats.
  3481.     thanks olaf!
  3482.  
  3483. atof.c, doprnt.c:: andreas
  3484.     I have implemented improved floating point formatting/scanning
  3485.     routines for the mc68881. They use the builtin packed decimal
  3486.     format, which gives a precision of 17 decimal digits. Formatted and
  3487.     rescanned numbers now give identical results, and enquire reports no
  3488.     problems anymore.
  3489.  
  3490. string.h:: ++jrb
  3491.     add parens to shut up gcc.
  3492.  
  3493. doprnt.c:: Howard Chu
  3494.     The patch to doprnt makes it less vulnerable to crashing when handed
  3495.     a large floating point value. (Took me a while to figure out why I was
  3496.     crashing, around address 0x30303030!  }-)  Basically, my math routine
  3497.     returned a value like 0x7ff12345 0x60000000 which is larger than INF
  3498.     but less than NaN. The check I put in makes it print this range of
  3499.     numbers as NaN or -NaN, which is what the Sun C library does.
  3500.  
  3501. falcon.h: ++entropy
  3502.     Protected against multiple #include's.
  3503.  
  3504. string.h: ++entropy
  3505.     Added some parens to appease gcc -Wall with gcc 2.3.1.
  3506.  
  3507. getuid.c: ++boender@dutiws.twi.tudelft.nl, ++entropy
  3508.     Only negative returns from Psetuid() and Psetgid() indicate
  3509.     an error.  Positive returns indicate success (the PID is
  3510.     returned from the OS).  Modified getuid() and setgid() accordingly.
  3511.  
  3512. a64l.c: ++boender@dutiws.twi.tudelft.nl
  3513.     NEW module for conversion between longs and base-64 ASCII strings.
  3514.  
  3515. a64l.c: ++entropy
  3516.     Use __PROTO, use compiler.h, etc.
  3517.  
  3518. support.h: ++entropy
  3519.     Added prototypes for a64l(), l64a().
  3520.  
  3521. support.h: ++boender@dutiws.twi.tudelft.nl, ++entropy
  3522.     Fixed prototype for link().  Removed protoype for isatty()
  3523.     (it exists in unistd.h)
  3524.  
  3525. limits.h: ++entropy
  3526.     Added #define PASS_MAX 8.
  3527.  
  3528. getpass.c: ++entropy
  3529.     Fixed to use PASS_MAX, fixed off-by-one-error (was writing past end
  3530.     of static buf, very bad news).  Removed some small kludges.
  3531.  
  3532. fflush.c: ++boender@dutiws.twi.tudelft.nl, ++entropy
  3533.     Return EOF instead of 0 for files that aren't open.
  3534.  
  3535. mincl: ++jrb
  3536.     add new target for a64l.o
  3537.  
  3538. alloca.s, bcopy.s: ++dsb@cs.duke.edu
  3539.     RENAME to alloca.cpp, bcopy.cpp so we can do conditional compilation.
  3540.  
  3541. alloca.cpp, bcopy.cpp, bzero.cpp: ++dsb
  3542.     Changes for HSC.
  3543.  
  3544. mincl:
  3545.     Account for the name changes.
  3546.  
  3547. compiler.h: ++dsb
  3548.     Rearrange the __SOZOBONC__ #defines, fix a typo.
  3549.  
  3550. ctime.c, fscanf.c, sscanf.c: ++dsb
  3551.     Make compatible with HSC.
  3552.  
  3553. compiler.h: ++hohmuth
  3554.     define __TCC_GEMLIB__ when used with Pure/Turbo C
  3555.  
  3556. aesbind.h, gemfast.h: ++hohmuth
  3557.     Make it useable with Pure's GEM library.  The special declarations
  3558.     in aesbind.h check for __TCC_GEMLIB__.  Improved compatibility with
  3559.     Turbo's GEM declarations when __TCC_COMPAT__ is defined.
  3560.  
  3561. osbind.h: ++hohmuth
  3562.     Fix typos, add macros for sloppier type checking when used with 
  3563.     Pure C.
  3564.  
  3565. strupr.c: ++hohmuth
  3566.     NEW file:  add library call strupr().
  3567.  
  3568. string.h: ++hohmuth
  3569.     Add declaration of strupr().
  3570.  
  3571. mincl, lattice/mincl.lcc, purec/mintlib.prj, sozobon/makefile:
  3572.     Add strupr.c.
  3573.  
  3574. doprnt.c: ++Ulf_Moeller@hh2.maus.de
  3575.     Fix up the ARG macro (which tends to produce wrong results with Pure
  3576.     C (which uses a type conversion scheme within ?: that differs from
  3577.     GCC)).
  3578.  
  3579. regexp.c: ++hohmuth
  3580.     Make it Turbo/PureC-proof.
  3581.  
  3582. ctime.c: ++hohmuth
  3583.  
  3584. falcon.h: ++hyc@hanauma.jpl.nasa.gov
  3585.     Remove superfluous equals sign in enum declaration.
  3586.  
  3587. fread.c: ++ulf
  3588.     Fix return value for text mode.
  3589.  
  3590. times.c, times.h: ++ulf
  3591.     Use long return value instead of int.  This allows larger values
  3592.     and agrees with the SysV man page. Returns realtime since epoch
  3593.     like sysV (rather than 0,1,-1 like bsd as it previously did)
  3594.  
  3595. strlwr/strupr.c:: ++jrb
  3596.     bulletproof a little.
  3597.  
  3598. a64l.c: ++boender@dutiws.twi.tudelft.nl
  3599.     Add to comments a note that prototypes are in support.h.
  3600.  
  3601. getpass.c:
  3602.     Read password from /dev/tty, instead of stdin, if MiNT is active.
  3603.  
  3604. support.h:
  3605.     Functions link(), symlink() now take "const char *" instead of
  3606.     "char *" parmeters.
  3607.  
  3608. access.c: ++boender, ++entropy
  3609.     Use real, not effective, user id's for access() checks.
  3610.     Fix so access() always returns success on existing files if real
  3611.     user id is 0 (root), regardless of file mode.
  3612.  
  3613. mintbind.h:
  3614.     Add new GEMDOS functions (macros) Dgetcwd() and Salert().
  3615.  
  3616. errno.h: ++boender
  3617.     Define ENODEV as alias for EUKDEV/EUNDEV.
  3618.  
  3619.  
  3620. ---------------------------- Patchlevel 87 ---------------------------
  3621.  
  3622. support.h:: warwick
  3623.     s/new/newname/  otherwise it clashes with the new op of c++
  3624.  
  3625. findfile.c:: warwick
  3626.     "findfile" doesn't work if the path is "\" (or "/", or "\\'),
  3627.     while "E:\foo" works fine.  Can it handle trailing slashes?
  3628.  
  3629. _addsubd.cpp _addsubs.cpp _divdf3.cpp _divsf3.cpp _extends.cpp 
  3630. _fixdfsi.cpp _fixsfsi.cpp _fxunsd.cpp _muldf3.cpp _mulsf3.cpp
  3631. _truncdf.cpp: andreas
  3632.     All floating point routines: my 68000 book says that bset #bitno,dn is
  3633.     faster than orl #imm,dn.  _fixsfsi.cpp: that was also my fault
  3634.  
  3635. atof.c:: andreas
  3636.  
  3637. ctime.c:: andreas
  3638.  
  3639. doprnt.c:: andreas
  3640.     Another bug that i introduced in doprnt.c:
  3641.     the m68020 version of _ICONV has the arguments of divull reversed
  3642.  
  3643. errno.h, strerror:: andreas
  3644.     include the new error EPIPE
  3645.  
  3646. filbuf.c:: andreas
  3647.     clr FILE->cnt on EoF or error.
  3648.  
  3649. fopen.c:: andreas
  3650.     dont close ttys for MiNT
  3651.     get new buffer if file was closed
  3652.         
  3653. strftime.c:: andreas
  3654.     strftime: typo in case 't', initialize buf if format
  3655.     directive is undefined
  3656.  
  3657. strtol.c:: andreas
  3658.     negating LONG_MIN gives overflow
  3659.  
  3660. lib.h, fcntl.h::
  3661.     The declaration for __open_stat etc. should be moved to lib.h, where
  3662.     the internals of the library belong to.
  3663.  
  3664. close.c isatty.c dup.c fcntl.c fhandle.c::
  3665.     adjust for above
  3666.  
  3667. strupr/lwr:: michal
  3668.     use <ctype> tolower/upper instead (in case we ever support 8 bit or
  3669.     wide chars, then the EOR trick of course will not work).
  3670.  
  3671. main.c:: andreas
  3672.     integrate c++ __main() (see changes in gcc 2.3.3 pl 3 (c-decl.c)).
  3673.     c++ low level support now moved to this lib from libg++
  3674.  
  3675.     define std in/out/err symbols for debugging.
  3676.  
  3677.  
  3678. gmon.c:: andreas
  3679.     fixup for gcc > 1
  3680.  
  3681. gbl-ctors.h, longlong.h: andreas
  3682.     new files in common
  3683.  
  3684. libgcc2.c:: andreas
  3685.     new file in common
  3686.  
  3687. osbind.h, falcon.h, mintbind.h:: andreas
  3688.     fix up for __GNUC__ > 1. note how the restriction of # of params
  3689.     to __asm() as been lifted, and now we use this feature for
  3690.     the larger binding. this is very benefecial as we dont have
  3691.     to bend over backwards to get a few binding correct (binding in
  3692.     which we would change the SP from under the compilers feet).
  3693.  
  3694. realloc.c: andreas
  3695.     In realloc, a block can only be split in two if there's enough room
  3696.     left for a struct mem_chunk (plus a bit more). [+ roundup ++jrb ]
  3697.  
  3698. ---------------------------- Patchlevel 88 ---------------------------
  3699.  
  3700. memcmp.c:: andreas
  3701.     should compare with unsigned char
  3702.  
  3703. strr?chr.c:: andreas
  3704.     should not depend on signedness
  3705.  
  3706. memccpy.c and memcmp.c:: andreas
  3707.     simplified
  3708.  
  3709. math-68881.h:: ++jrb
  3710.     sync up with gnu version.
  3711.  
  3712. math.h:: ++jrb
  3713.     change all #ifdef _M68881 to
  3714.      #if defined(_M68881) ||  defined(__M6881__)
  3715.     __M68881__ gets automatically defined when gcc -m68881
  3716.  
  3717. doprnt.c:: michal
  3718.     Still, so far I found two bugs in floating point support.  One
  3719.     was introduced by Howard when he tried to catch garbled results from
  3720.     floating point operations.  He caught in the process also negative
  3721.     zero and that was part of the reason why Scott got NaN.
  3722.  
  3723.     [in the part that check for overflows]
  3724.  
  3725. _divdf3.cpp:: michal
  3726.     The other part was a wrong branch in a division routine which
  3727.     was giving a negative zero as a result of a division 0.0/1.0.
  3728.  
  3729. _divdf3.cpp, _divsf3.cpp:: michal, olaff
  3730.     Fixed sign for retinf, and retzero.
  3731.  
  3732. ---------------------------- Patchlevel 89 ---------------------------
  3733.  
  3734.     michal did a tremendous amount of job tracking down modf and
  3735.     fixing the following. thanks michal.
  3736.  
  3737.     Wed May 26 20:35:34 1993  Michal Jaegermann  (michal at smok)
  3738.  
  3739.     * fixed norm_df and norm_sf not to set errno when processing
  3740.       legitimate zero argument
  3741.     * fixed wrong error codes and made sure that future changes
  3742.       in errno.h will be automatically reflected;
  3743.       this involves changes in errbase.h and errno.h
  3744.     * removed unused code from _divsf3.cpp
  3745.     * corrected bug in setting sign of Inf in _truncdf.cpp
  3746.     * made zeros returned from frexp and ldexp consistenly signed
  3747.       (they were signed or unsigned, depending on a way they were
  3748.        calculated)
  3749.     * renamed _cmpdf2.s to _cmpdf2.cpp and _cmpsf2.s to _cmpsf2.cpp
  3750.       and added preprocessor directives to split them into separate
  3751.       objects while compiling (required change in mincl)
  3752.     * replaced 68000 code for modf() with totally new, shorter and
  3753.       much faster version
  3754.     * added Olaf Flebbe fixes for sign of 0 in multiplication routines
  3755.     * general code cleanup all over the place in floating point support
  3756.       routines
  3757.  
  3758. scanf.c:: ++jrb
  3759.     fix bug reported by warwick, when "%Ns", the test for the end of
  3760.     the %s loop was incorrect. (left off 1 char too soon).
  3761.  
  3762.     added some decls for non ansi platforms.
  3763.  
  3764.     use long double type only when __M68881__ not with soft float.
  3765.     out soft float stuff knows nothing about long doubles.
  3766.  
  3767. ---------------------------- Patchlevel 90 ---------------------------
  3768.  
  3769. _addsubs.cpp, _addsubd.cpp, _div*.cpp, _mul*.cpp:: michal
  3770.     following some discussions with Olaf I rewrote addition routines to
  3771.     conform - at least here - strictly to IEEE spec.  As a matter of fact
  3772.     they even decreased in size. :-)
  3773.  
  3774.     this stuff which I am mailing you right now corrects handling
  3775.     various cased when you add or multiply infinities or NaNs.
  3776.     To my best knowledge this now follows IEEE specifications, although
  3777.     do not quote me on that. :-)  There is also some code rearangement
  3778.     in division routines to reduce unnecessary branching.
  3779.  
  3780.     thanks michal!
  3781.  
  3782. osbind.h:: Markus Gutschke <srb242@GOEDEL.UNI-MUENSTER.DE>
  3783.     stack adjustment amount was wrong. was 6 should be 10. thanks
  3784.     markus.
  3785.  
  3786. osbind.h:: Robert.Wilhelm@Physik.TU-Muenchen.DE
  3787.     wrong stack adjustment for trap_1_wwwll was 16 should have
  3788.     been 14. thanks robert.
  3789.  
  3790. ---------------------------- Patchlevel 91 ---------------------------
  3791.  
  3792. pgrp:: 
  3793.     NEWFILE from mintlib 31
  3794.  
  3795.     unistd.h:
  3796.     Added pause() and sigpause() prototypes.  Changed prototype of
  3797.     setpgrp() to reflect new SysV-compatible version, and make proto
  3798.     apply only if not _POSIX_SOURCE.  Changed prototype of getpgrp() to
  3799.     reflect return type of pid_t (POSIX).  Added setpgid(), setsid(),
  3800.     _bsd_setpgrp() and _bsd_getpgrp() protos.  To access the BSD
  3801.     functions by their usual names, define the macro _BSD_PGRP (and do
  3802.     _not_ define _POSIX_SOURCE) before including unistd.h (for example,
  3803.     gcc -D_BSD_PGRP -c foo.c).
  3804.  
  3805.     pgrp.c:
  3806.     NEW file, for process group related functions. Renamed setpgrp to
  3807.     _bsd_setpgrp().  Created new SysV-compatible setpgrp(). Created
  3808.     new BSD-compatible _bsd_getpgrp() (requires MiNT 1.03 or newer).
  3809.     Created new POSIX setpgid() and setsid().
  3810.  
  3811.  
  3812. putpwent.c::
  3813.     NEW file from mntlib 31
  3814.  
  3815. eprintf.c:: mntlib31
  3816.     throw away status buffer. [move buffer onto stk]
  3817.  
  3818. findfile.c:: mntlib31
  3819.     rehacked by Uwe Ohse, 28.4.93, to support reentrant spawn/popen.
  3820.  
  3821. getpw.c:: mntlib31
  3822.     sync up with what appears to be a rewrite
  3823.  
  3824. grp.c:: mntlib31
  3825.     ditto
  3826.  
  3827. linea.h, grp.h, ioctl.h, mintbind.h, osbind.h, ostruct.h pwd.h ::
  3828.     sync with mntlib 31.
  3829.  
  3830. ---------------------------- Patchlevel 92 ---------------------------
  3831.  
  3832. main.c:: andreas
  3833.     the isatty status should be cleared for dumped programs
  3834.  
  3835. float.h:: andreas
  3836.      update for GCC 2.4/enquire 4.3; the values for
  3837.     LDBL_{EPSILON,MIN,MAX} are computed with bc and verified with enquire.
  3838.  
  3839. support.h: ++warwick@cs.uq.oz.au
  3840.     Remove two occurances of the string "new" for C++ compatibility.
  3841.  
  3842. ctype.h: ++entropy
  3843.     More POSIX namespace monkey business.
  3844.  
  3845. types.h: ++entropy
  3846.     Made lots of stuff #ifndef _POSIX_SOURCE.  Added a few POSIX types
  3847.     (nlink_t, mode_t).
  3848.  
  3849. doprnt.c: ++hohmuth
  3850.     Make a long constant explicit for Pure C.
  3851.  
  3852. setjmp.h: ++entropy
  3853.     Implemented BSD-compatible _setjmp(), _longjmp(), setjmp(), and
  3854.     longjmp().  Selectable by defining _BSD_SOURCE.  BUG: not compatible
  3855.     with __STRICT_ANSI__.
  3856.  
  3857. fcntl.h: ++entropy
  3858.     Add POSIX-required mask FD_CLOEXEC, to select the close-on-exec
  3859.     bit from the flags used in F_GETFD/F_SETFD fcntl().
  3860.  
  3861. unistd.h: ++entropy
  3862.     Do not define prototype for getopt() if _POSIX_SOURCE is defined.
  3863.  
  3864. types.h: ++entropy
  3865.     Do not #include <utime.h> if _POSIX_SOURCE is defined.
  3866.  
  3867. utime.h: ++entropy
  3868.     Added prototype for utime().
  3869.  
  3870. unistd.h: ++entropy
  3871.     Changed BSD process group selection switch from _BSD_PGRP to
  3872.     _BSD_SOURCE.
  3873.  
  3874. stat.h: ++nox, ++entropy
  3875.     Added S_ISCHR(), S_ISDIR(), S_ISBLK(), S_ISREG(), S_ISFIFO(),
  3876.     S_ISMEM(), S_ISLNK(), S_IRWXU, S_IRWXG, S_IRWXO.
  3877.     (btw, is S_IMEM a typo of S_IFMEM or was that intentional?)
  3878.  
  3879. setjmp.cpp, setjmp.h: ++entropy
  3880.     Implemented POSIX sigsetjmp() and setlongjmp().
  3881.  
  3882. fopen.c: ++entropy
  3883.     Always use O_NOCTTY flag in the call to open().
  3884.  
  3885. errno.h, strerror.c: ++entropy
  3886.     Add definition of EIO and ENOSPC.
  3887.  
  3888. support.h: ++entropy
  3889.     Prototype for _isctty() from the MiNT libs.
  3890.  
  3891. ctermid.c, stdio.h: ++entropy
  3892.     NEW file, POSIX ctermid() function.  Prototype and constant L_ctermid
  3893.     in stdio.h.
  3894.  
  3895. doprnt.c: ++dsb@cs.duke.edu
  3896.     HSC choked on a string with implicit newlines (that is,
  3897.         "like
  3898.         this"
  3899.     as GCC is wont to do); I replaced it with explicit "\n"'s and string
  3900.     concatenation.
  3901.  
  3902. fread.c, fwrite.c: ++dsb
  3903.     Some judicious changes from size_t to unsigned long to allow reads
  3904.     and writes of >=64K with HSC.
  3905.  
  3906. getpw.c: ++dsb
  3907.     Minor tweak to work around a foible in HSC.
  3908.  
  3909. compiler.h: ++dsb
  3910.     Changes for HSC v2.00 and higher.
  3911.  
  3912. utime.h: ++dsb
  3913.     Changed "#endif _UTIME_H" to "#endif /* _UTIME_H */" to keep HSC
  3914.     from complaining.
  3915.  
  3916. fcntl.h: ++entropy
  3917.     O_NOCTTY definition (for the MiNT libs).
  3918.  
  3919. pgrp.c: ++entropy
  3920.     Made a more reasonable attempt at setsid().  Kludge a way to
  3921.     "disassociate" the controlling tty by forcing fd -1 to /dev/null.
  3922.  
  3923. fwrite.c:: michal
  3924.     With unbuffered IO fwrite miscounts number of characters written.
  3925.  
  3926. a64l.c, calloc.c, chdir.c, chmod.c, eprintf.c, grp.c,lib.h, linea.c,
  3927. psignal.c, putenv.c, raise.c, random.c, regexp.c, regsup.c, strlwr.c,
  3928. strrev.c, strupr.c, strvar.c, textio.c, timeoday.c, *.h:: entropy
  3929.     sync up with mntlib pl 33. most changes are cleanups.
  3930.     (what does linea2 return?)
  3931.  
  3932. --- sync with mntlib34:
  3933. ffs.c: ++frog
  3934.     Much faster algorithm.
  3935.  
  3936. Makefile, _fixsfsi.cpp, _fltsisf.cpp,
  3937. frexp.cpp, modf.cpp : ++dc4i@br0.hrz.th-darmstadt.de (Stefan Steyer)
  3938.     Bug fixes for SFP004 coprocessor code.  Add sfp004 targets.
  3939.  
  3940. doprnt.c: ++schwab@ls5.informatik.uni-dortmund.de (Andreas Schwab)
  3941.     The decimal precision in a printf format does not include the sign or
  3942.     hex prefix, e.g. printf ("%-2.5d", -18) should print "-00018".
  3943.  
  3944. time.h: ++Frank_Baumgart@pb.maus.de
  3945.     Add prototype of select() to time.h (is there a better place?)
  3946.  
  3947. ctype.h, grp.h, dirent.h, stddef.h, string.h: ++entropy
  3948.     Cleaned up for POSIX.
  3949.  
  3950. wait.h, pwd.h: ++entropy
  3951.     Cleaned up for POSIX (need more work).
  3952.  
  3953. compiler.h, limits.h, stdio.h: ++entropy
  3954.     Set stream limits for POSIX.
  3955.  
  3956. locale.h: ++entropy
  3957.     Define NULL if not already defined (POSIX).
  3958.  
  3959. limits.h: ++entropy
  3960.     Raise value of _POSIX_NGROUPS_MAX from 0 to arbitrary value of
  3961.     512 now that we have a decent getgroups().
  3962.  
  3963. fcntl.h, errno.h: ++entropy
  3964.     Add definition of F_SETLKW to fcntl.h.  Add ELOCKED to errno.h.
  3965.     If Fcntl() gets ELOCKED, return EACCES instead (POSIX).
  3966.  
  3967. unistd.h, stat.h, fcntl.h: ++entropy
  3968.     Moved many prototypes to the correct headers.
  3969.  
  3970. signal.h: ++entropy
  3971.     Fix some violations of POSIX namespace.
  3972.  
  3973. -- end sync
  3974.  
  3975. findfile.c:: michal
  3976.     try to accomodate tos style paths
  3977.     PATH=e:\bin,c:\bin,...
  3978.  
  3979. unistd.h:: ++jrb
  3980.     take out setlinebuf proto, it does'nt really belong here.
  3981.  
  3982. ---------------------------- Patchlevel 93 ---------------------------
  3983.  
  3984. falcon.h:: howard
  3985.     corrections from howard
  3986.  
  3987. math-68881.h:: ++jrb
  3988.     -- Put extern "C" around file when __cplusplus
  3989.     -- Make hypot use internal version of sqrt (because signature
  3990.        clash in libg++:xfix )
  3991.     -- Define internal version (_sqrt) of sqrt.
  3992.  
  3993. osbind.h: Robert.Wilhelm@Physik.TU-Muenchen.DE
  3994.     chand addw #n,sp to lea n(s),sp which is 4 cycles shorter
  3995.  
  3996. dirent.c::  Christoph Koerner (christof@wowbagger.pc-labor.uni-bremen.de)
  3997.     sync up dirent.c with changes in dirent.h (DIRENTSIZ -> __DIRENTSIZ)
  3998.  
  3999. fprintf.c:: ++jrb
  4000.     break out vfprintf, printf and vprintf into their own .o's. that
  4001.     way the user can replace any of them.
  4002.  
  4003. printf.c, vfprintf.c, vprintf.c:: ++jrb
  4004.     NEW files
  4005.  
  4006. mincl:: ++jrb
  4007.     add targets for above
  4008.  
  4009. gnulib2.c:: Steven Ourada (sourada@iastate.edu)
  4010.     #define WORD_BIG_ENDIAN for long long.
  4011.  
  4012. sync with mntlib35:
  4013.  
  4014. doprnt.c: ++Bjarne_Pohlers@ms2.maus.de
  4015.     Add support for printing/scanning long longs.
  4016.  
  4017. div.c: ++pvt1-117
  4018.     Add div functions for compilers other than GCC.
  4019.  
  4020. bsearch.c: ++dsb
  4021.     Fix bug reported by Thorsten Roskowetz: the order arguments to
  4022.     bsearch()'s comparison function was reversed.
  4023.  
  4024. ioctl.h: ++Jan-Hinrich_Fessel@un.maus.ruhr.de (Jan-Hinrich Fessel)
  4025.     Make it possible to include both ioctl.h and filesys.h.
  4026.  
  4027. pgrp.c: ++schwab
  4028.     Correctly check the MiNT version in _bsd_getpgrp().
  4029.  
  4030. doprnt.c: ++pvt1-117
  4031.     Changes to keep Lattice C from generating annoying warnings.
  4032.  
  4033. math.h, process.h, support.h, unistd.h, findfile.c, textio.c: ++schwab
  4034.     Add 'const' to declarations where appropriate.
  4035.  
  4036. malloc.c:  ++schwab
  4037.     Make malloc() round all memory requests to the page size to be able
  4038.     to use all the available memory.
  4039.  
  4040. setjmp.cpp, setjmp.h: ++schwab
  4041.     Some cleanup; one element of jmp_buf[] can be saved by using the
  4042.     fact that signal 0 cannot be masked; why was the type char*[] insead
  4043.     of long[]?
  4044.  
  4045. fopen.c: ++schwab
  4046.     Make fopen() use 0666 as the default file mask (use umask() if you
  4047.     want something else); make mkdir() respect the umask setting.
  4048.  
  4049. utime.c: ++shenson@nyx.cs.du.edu
  4050.     Pass through a NULL tset argument unchanged to the filesystem
  4051.     so that it can determine permissions correctly.
  4052.  
  4053. falcon.h: ++hyc@hanauma.Jpl.Nasa.Gov, ++Markus_Kilbinger@ac.maus.de
  4054.     Change several erroneous macros to correctly cast return to short.
  4055.  
  4056. errno.h: ++Ole_Arndt
  4057.     Add errors ENOTDIR and ELOOP.
  4058.  
  4059. signal.h: ++Ole_Arndt@f.maus.de (Ole Arndt)
  4060.     Fix definition of _SIGSET_MAX_INDEX to correct several bugs
  4061.     in the POSIX signal mask functions.
  4062.  
  4063. stdio.h:
  4064.     Add vsscanf() and _getbuf() protos (yech).
  4065.  
  4066. dirent.h:
  4067.     Add alphasort() proto (excluded by _POSIX_SOURCE).
  4068.  
  4069. utmp.h:
  4070.     Rename write_utmp() to _write_utmp().  Rename write_wtmp() to
  4071.     _write_wtmp().  Add protos (and other cleanups) to utmp.h.
  4072.  
  4073. atof.c, fdopen.c, fputs.c:
  4074.     Move 'register' to beginning of declarations (shuts up gcc -Wall).
  4075.  
  4076. fwrite.c: ++michal
  4077.         With unbuffered IO fwrite miscounts number of characters written.
  4078.  
  4079. findfile.c: ++michal
  4080.     Try to accomodate tos style paths PATH=e:\bin,c:\bin,...
  4081.  
  4082. unistd.h: ++jrb
  4083.     Take out setlinebuf, doesn't really belong here.
  4084.  
  4085. ffs.c: ++NTOMCZAK@vm.ucs.UAlberta.CA (Michal Jaegermann)
  4086.     An even faster algorithm.  Yow!  Are we optimized yet?
  4087.  
  4088. support.h:
  4089.     Added _exit() and gethostname() protos. Removed write_utmp() and
  4090.     write_wtmp() protos.
  4091.  
  4092. lib.h, crtinit.c:
  4093.     Moved prototypes from crtinit.c to lib.h, and added more to lib.h.
  4094.  
  4095. abort.c, lib.h:
  4096.     Make abort() close file handles in exactly the same manner
  4097.     as exit().
  4098.  
  4099. signal.h: ++nox@jelal.north.de, ++Oskar, ++entropy
  4100.     Fix type of sa_mask in struct sigaction (sigset_t, not long).
  4101.  
  4102. falcon.h: ++Markus_Kilbinger@ac.maus.de, ++entropy
  4103.     Add missing traps.
  4104.  
  4105. unistd.h, support.h:
  4106.     Cleaned unistd.h for easier reading.  Moved back the link(),
  4107.     symlink(), and readlink() protos from support.h (sorry if I seem
  4108.     really indecisive on where some of these protos belong).
  4109.  
  4110. doprnt.c, open.c, putenv.c, utime.c:
  4111.     Include appropriate headers for protos (and fixed mknod() proto).
  4112.  
  4113. sys/statfs.h:
  4114.     Add statfs() proto.
  4115.  
  4116. sys/errno.h, sys/ioctl.h, sys/resource.h, sys/signal.h, sys/wait.h:
  4117.     Fix multiple-include protection to hopefully prevent possible
  4118.     infinite include loops (see Bugs file).
  4119.  
  4120. getpw.c, pwd.h: ++Jan-Hinrich_Fessel@un.maus.de (Oskar)
  4121.     Use uid_t (_UID_T) for getpwuid() instead of int (POSIX).
  4122.  
  4123. === end of merge
  4124.  
  4125. symlink.c, spawnve.c, spawnvp.c, exec.c: ++jrb
  4126.     adjust args to meet new protos in process.h, unistd.h
  4127.  
  4128. getpage.c:: ++jrb
  4129.     NEW file. defines getpagesize() (for use with malloc.c etc)
  4130.  
  4131. mincl:: ++jrb
  4132.     add proto for above
  4133.  
  4134. == merge with mintlib 36
  4135. _addsubs.cpp: ++nox
  4136.     Correct an inverted branch.
  4137. utime.c: ++schwab
  4138.     utime(NULL) uses time() to convert the current time to Unix format
  4139.     and immediately converts it back to GEMDOS format. Instead it should
  4140.     use the GEMDOS format directly.
  4141.     stime() must be changed because Tset{date,time} can now return a
  4142.     real error number. This depends on Tset{date,time} returning -1 if
  4143.     args are bad, which is true for all TOS versions, i think.
  4144. falcon.h: ++Markus_Kilbinger@ac.maus.de
  4145.     Add two omitted backslashes to fix new trap definitions.
  4146. chmod.c: ++schwab@ls5.informatik.uni-dortmund.de
  4147.     chmod() unnecessarily calls stat() to check if the file is a
  4148.     directory; this information is already available through Fattrib().
  4149. nlist.c, nlist.h: ++shenson@nyx.cs.du.edu
  4150.     NEW files nlist.c, nlist.h.  A version of nlist() for mntlib/toslib.
  4151.     Works OK with my binary config program but your milage may vary.
  4152. wcmb.c, stdlib.h: ++pvt1-117@nada.kth.se
  4153.     NEW file wcmb.c for ANSI wide char functions.
  4154. ctype.h: ++dsb@cs.duke.edu
  4155.     The toint() macro in ctype.h was translating hex digits wrong.
  4156.  
  4157. == end merge
  4158.  
  4159. mincl:: ++jrb
  4160.     add tagets for nlist and wcmb
  4161.  
  4162. == merge with mntlib 37
  4163.  
  4164. bzero.cpp, mincl: ++entropy
  4165.     Break bzero and memset into separate .o's (reduce drag).
  4166.  
  4167. string.h, strcmp.c: ++pvt1-117
  4168.     Allow use of builtin string functions.
  4169.  
  4170. file.h: ++entropy
  4171.     Add FREAD and FWRITE macros for TIOCFLUSH flushing modes (not yet
  4172.     implemented in MiNT).
  4173.  
  4174. unistd.h: ++entropy
  4175.     Add tcgetpgrp() and tcsetpgrp() protos.
  4176.  
  4177. ioctl.h: ++entropy
  4178.     Changes to account for definitions in common with termios.h,
  4179.     also add _RTSCTS flag definition.
  4180.  
  4181. termios.h: ++entropy
  4182.     NEW files, partially implementing the POSIX termios functions (in
  4183.     the MiNT library).
  4184.  
  4185. wait.h: ++entropy
  4186.     Add WSTOPSIG() macro (POSIX).
  4187.  
  4188. utime.c: ++entropy
  4189.     Add a kludge so that we pretend the utime() worked for directories.
  4190.  
  4191. stat.h: ++entropy
  4192.     Mode argument is now mode_t instead of unsigned (POSIX).
  4193.  
  4194. mkfifo.c, stat.h: ++entropy
  4195.     NEW file providing a fake mkfifo(), and a prototype for it.
  4196.  
  4197. resource.h: ++entropy
  4198.     Add BSD-compatible struct rusage members with 0 values for
  4199.     minimal compatibility.
  4200.  
  4201. errno.h: ++entropy
  4202.     Added EOPNOTSUPP as (temporary) alias for EINVAL.
  4203.     Added ECHILD as alias for ENOENT (POSIX).
  4204.  
  4205. doprnt.c, fprintf.c, printf.c, sprintf.c, 
  4206. vfprintf.c, vfprintf.c, lib.h: ++schwab
  4207.     Change the interface of _doprnt to also pass a putchar function
  4208.     similar to _scanf.  This allows use of sprintf in a program which
  4209.     doesn't use stdio and it simplifies the implementation of sprintf a
  4210.     bit.
  4211.  
  4212. lseek.c: ++schwab@ls5.informatik.uni-dortmund.de
  4213.     Make lseek() and tell() always return -1 on errors.  Make lseek()
  4214.     work better with unseekable devices.  Don't modify errno
  4215.     when no error has occurred.  General cleanup.
  4216.  
  4217. nlist.c: ++pvt1-117
  4218.     Add some typecasts to keep Lattice happy.
  4219.  
  4220. mintbind.h: ++pvt1-117@nada.kth.se
  4221.     Add some casts in the Lattice C inlines.
  4222.  
  4223. frexp.cpp: ++Cristof_Stadler@s2.maus.de
  4224.     Bug fix: add a missing @.
  4225.  
  4226. ctime.c, doprnt.c, findfile.c, getpass.c, 
  4227.  
  4228. localtim.c, strftime.c, strncat.c: ++pvt1-117@nada.kth.se
  4229.     Removed some dead assignments and increments.
  4230.  
  4231. stdlib.h: ++entropy
  4232.     Added NULL (POSIX).
  4233.  
  4234. == end merge
  4235.  
  4236. mincl:: ++jrb
  4237.     add new rules for bzero/memset
  4238.     new target for (dummy) mkfifo
  4239.  
  4240. == merge with mntlib 38
  4241.  
  4242. compiler.h: ++pvt1-117
  4243.     Make LCC do the right thing in limits.h.
  4244.  
  4245. termios.h: ++entropy
  4246.     Add VLNEXT and VWERASE control chars.
  4247.  
  4248. types.h: ++roemer@hera.rbi.informatik.uni-frankfurt.de.uni-frankfurt.de
  4249.     Add fd_set type and related macros.
  4250.  
  4251. falcon.h: ++Markus_Kilbinger@ac.maus.de
  4252.     Change return types of VsetMask() and Dsp_Reserve() from
  4253.     void to short.
  4254.  
  4255. _mulsi3.s, _umulsi3.s: ++schwab
  4256.     .lmul and .ulmul aren't equivalent.
  4257.  
  4258. wait.h: ++schwab@ls5.informatik.uni-dortmund.de
  4259.     Make the wait prototype indirection more robust.  Also fix the
  4260.     definition of WIFSIGNALED().
  4261.  
  4262. falcon.h: ++pvt1-117
  4263.     Inline traps for Lattice.
  4264.  
  4265. wcmb.c: ++pvt1-117
  4266.     Use _wnull from wnull.c instead of a local variable.
  4267.  
  4268. wcscat.c, wcscmp.c, wcscpy.c, wcslen.c, wnull.c: ++pvt1-117
  4269.     NEW files for ISO wide char support.
  4270.  
  4271. stdlib.h: ++pvt1-117@nada.kth.se
  4272.     Add prototypes for new ISO widechar functions.
  4273. == end merge
  4274.  
  4275. mincl:: ++jrb
  4276.     add targets for wcscat.o, wcscmp.o, wcscpy.o, wcslen.o, wnull.o
  4277.  
  4278. abort.c:: ++jrb
  4279.     rid of redundant fclose_all_files(), exit() should do all that.
  4280.  
  4281. limits.h:: ++jrb at suggestion of michal
  4282.     make groups limit 0 for non-MiNT
  4283.  
  4284. ---------------------------- Patchlevel 94 ---------------------------
  4285. === synch with mntlib39
  4286.  
  4287. ***** include/errno.h
  4288. ----------------------------
  4289. revision 38.2    
  4290. date: 1993/10/21 16:21:30;  author: entropy;  state: Exp;  lines: +1 -0
  4291. Add ENOTEMPTY as alias for EEXIST (POSIX).
  4292. =============================================================================
  4293. ***** include/limits.h
  4294. ----------------------------
  4295. revision 38.3    
  4296. date: 1993/10/23 18:44:56;  author: entropy;  state: Exp;  lines: +17 -18
  4297. Raised some arbitrary limits (or changed to actual limit, as in the case
  4298. of _POSIX_OPEN_MAX).  Rearranged things a bit for consistency.
  4299. ----------------------------
  4300. revision 38.2
  4301. date: 1993/10/23 18:28:52;  author: entropy;  state: Exp;  lines: +4 -0
  4302. Set _POSIX_NGROUPS_MAX to 0 when not __MINT__.
  4303. Thanks to ntomczak@vm.ucs.ualberta.ca for the bug report.
  4304. =============================================================================
  4305. ***** include/time.h
  4306. ----------------------------
  4307. revision 38.2    
  4308. date: 1993/10/25 10:00:30;  author: entropy;  state: Exp;  lines: +7 -2
  4309. Update select() prototype to use fd_set * for arguments, and
  4310. make some stuff !_POSIX_SOURCE.
  4311. =============================================================================
  4312. ***** include/types.h
  4313. ----------------------------
  4314. revision 38.2    
  4315. date: 1993/10/25 09:59:28;  author: entropy;  state: Exp;  lines: +4 -1
  4316. Allow fd_set definition to be gotten from time.h too.
  4317. =============================================================================
  4318. ***** include/wait.h
  4319. ----------------------------
  4320. revision 38.2    
  4321. date: 1993/10/24 18:47:48;  author: nox;  state: Exp;  lines: +1 -1
  4322. Some older versions of GCC trip over the new wait macros...so
  4323. it's better not to use them for now.
  4324. =============================================================================
  4325.  
  4326. == end sync
  4327.  
  4328. read.c:: michal
  4329.     replace the echochar()/delchar() macros with safer ones, and
  4330.     ones that dont solicit warnings from the compiler.
  4331.  
  4332. mincl:: michal
  4333.     build bzero/memset together when building bzero.o. doing
  4334.     them seperately saves only 12 bytes, but causes jump
  4335.     to become long (again not that much of a big deal, as
  4336.     those jumps happen once)
  4337.  
  4338. osbind.h: ++jrb
  4339.     relax the constraints on the inputs of trap_14_wwwwwww (only
  4340.     Rsconf maps to this)  to "g" from "r", as these many "r" 's
  4341.     give gcc 2.>3.X heartaches (understandably). note this is ok
  4342.     since these args will never be expressions, and we never
  4343.     have to constrain hard enough to force eval before we change
  4344.     sp from underneath gcc.
  4345.  
  4346. qsort.c: ++jrb
  4347.     adjust order of inclusion of compiler.h so that INLINE may be
  4348.     conditionally overriden even when __GNUC__
  4349.  
  4350. == sync with mntlib 40
  4351.  
  4352. ***** abort.c
  4353. ----------------------------
  4354. revision 39.2    
  4355. date: 1993/10/28 17:54:14;  author: entropy;  state: Exp;  lines: +20 -2
  4356. Fix for the TOS lib, and also remove a POSIX violation.
  4357. =============================================================================
  4358. ***** utime.c
  4359. ----------------------------
  4360. revision 39.2    
  4361. date: 1993/10/27 15:01:02;  author: entropy;  state: Exp;  lines: +16 -1
  4362. Implement the Dcntl() versionof FUTIME in utime().  Comment out the
  4363. kludge for directories in the Fcntl() version.
  4364.  
  4365. ==end sync
  4366.  
  4367. mincl: ++jrb
  4368.     undo the above change for memset, keep them seperate as there
  4369.     are util there that want one without the other. what the heck, its
  4370.     only about a  dozen bytes.
  4371.  
  4372. ==sync with mntlib 41
  4373. ***** nlist.c
  4374. ----------------------------
  4375. revision 40.2    
  4376. date: 1993/10/31 09:24:14;  author: hohmuth;  state: Exp;  lines: +3 -3
  4377. add a few typecasts for __MSHORT__
  4378. =============================================================================
  4379. ***** strerror.c
  4380. ----------------------------
  4381. revision 40.2    
  4382. date: 1993/10/31 11:33:36;  author: entropy;  state: Exp;  lines: +59 -1
  4383. Add support for the socket lib.
  4384. =============================================================================
  4385. ***** utime.c
  4386. ----------------------------
  4387. revision 40.2    
  4388. date: 1993/10/31 09:25:04;  author: hohmuth;  state: Exp;  lines: +1 -1
  4389. make assignments used as truth values clearer, to avoid
  4390. spurious warnings
  4391. =============================================================================
  4392. ***** wcmb.c
  4393. ----------------------------
  4394. revision 40.2    
  4395. date: 1993/10/31 09:25:16;  author: hohmuth;  state: Exp;  lines: +2 -2
  4396. make assignments used as truth values clearer, to avoid
  4397. spurious warnings
  4398. =============================================================================
  4399. ***** wcscat.c
  4400. ----------------------------
  4401. revision 40.2    
  4402. date: 1993/10/31 09:25:24;  author: hohmuth;  state: Exp;  lines: +2 -2
  4403. make assignments used as truth values clearer, to avoid
  4404. spurious warnings
  4405. =============================================================================
  4406. ***** include/PatchLev.h
  4407. ----------------------------
  4408. revision 40.2    
  4409. date: 1993/10/30 10:30:02;  author: entropy;  state: Exp;  lines: +1 -1
  4410. -
  4411. =============================================================================
  4412. ***** include/errno.h
  4413. ----------------------------
  4414. revision 40.2    
  4415. date: 1993/10/31 11:03:32;  author: entropy;  state: Exp;  lines: +40 -1
  4416. Add support for the socket library.
  4417. =============================================================================
  4418. ***** include/osbind.h
  4419. ----------------------------
  4420. revision 40.3    
  4421. date: 1993/10/31 09:23:14;  author: hohmuth;  state: Exp;  lines: +3 -3
  4422. fix prototypes for Pure C: gemdos(), bios(), xbios()
  4423. =============================================================================
  4424.  
  4425. == end sync
  4426.  
  4427. math.h:: ++jrb
  4428.     allow define NO_INLINE_MATH to override _M68881_. Also, check
  4429.     for __GNUC_INLINE__ as a pre-requisite to inlining (so the  user
  4430.     may override globally with  __NO_INLINE__.
  4431.  
  4432. crt0.c:: ++jrb
  4433.     put a section change directive back to .data  at the end of the asm()
  4434.     block. in gcc 2.5.X the compiler does not reset the block type
  4435.     by emitting an appropriate .directive after a asm(). this was causing
  4436.     problems with -mbaserel (reloc of acc_argv was always out of range).
  4437.  
  4438. strerror.c:: ++jrb
  4439.     make sys_errlist[] a char *const like _sock_errlist[].
  4440.  
  4441. ---------------------------- Patchlevel 95 ---------------------------
  4442.  
  4443. bzero.cpp: michal
  4444.     when Lmemset is defined and not Lbzero, the jump at the bottom
  4445.     of the memset setup reduces to a zero offset jump. put a
  4446.     #ifdef Lbzero (which amounts to  really #ifdef Lmemset && Lbzero)
  4447.     around the `jra do_set'.
  4448.  
  4449. ---------------------------- Patchlevel 96 ---------------------------
  4450.  
  4451. ==sync with mntlib42
  4452. ***** abs.c
  4453. ----------------------------
  4454. revision 41.2    
  4455. date: 1993/11/24 20:23:16;  author: pvt1-117;  state: Exp;  lines: +7 -0
  4456. Inline abs() and labs() for LCC.
  4457. =============================================================================
  4458. ***** bblink.c
  4459. ----------------------------
  4460. revision 41.3    
  4461. date: 1994/01/13 08:03:50;  author: schwab;  state: Exp;  lines: +29 -26
  4462. Fixed version of update for GCC 2.5
  4463. ----------------------------
  4464. revision 41.2
  4465. date: 1993/11/30 18:51:36;  author: schwab;  state: Exp;  lines: +139 -2
  4466. Updated for GCC 2.5
  4467. =============================================================================
  4468. ***** buffindf.c
  4469. ----------------------------
  4470. revision 41.2    
  4471. date: 1994/01/09 09:33:20;  author: schwab;  state: Exp;
  4472. NEW file.
  4473. The library uses the names findfile and buffindfile which are in the
  4474. user's namespace. findfile is not really used and should be move into
  4475. a separate file, and buffindfile should be renamed to _buffindfile.
  4476. I have renamed findfile.c to buffindf.c and moved the function
  4477. findfile into a new findfile.c, and changed all callers.
  4478. =============================================================================
  4479. ***** fdopen.c
  4480. ----------------------------
  4481. revision 41.3    
  4482. date: 1994/01/13 09:37:36;  author: entropy;  state: Exp;  lines: +2 -0
  4483. *** empty log message ***
  4484. ----------------------------
  4485. revision 41.2
  4486. date: 1993/11/24 20:12:04;  author: nox;  state: Exp;  lines: +1 -1
  4487. Use binary mode on tty's (under MiNT) to avoid extra ^M's.
  4488. =============================================================================
  4489. ***** findfile.c
  4490. ----------------------------
  4491. revision 41.2    
  4492. date: 1994/01/09 09:29:32;  author: schwab;  state: Exp;  lines: +2 -126
  4493. The library uses the names findfile and buffindfile which are in the
  4494. user's namespace. findfile is not really used and should be moved into
  4495. a separate file, and buffindfile should be renamed to _buffindfile.
  4496. I have renamed findfile.c to buffindf.c and moved the function
  4497. findfile into the new findfile.c, and changed all callers.
  4498. =============================================================================
  4499. ***** fopen.c
  4500. ----------------------------
  4501. revision 41.4    
  4502. date: 1994/01/09 11:12:06;  author: nox;  state: Exp;  lines: +2 -2
  4503. *** empty log message ***
  4504. ----------------------------
  4505. revision 41.3
  4506. date: 1994/01/09 11:06:16;  author: nox;  state: Exp;  lines: +2 -0
  4507. In _fopen() we seek to the end when file mode "a" is used (the kernel
  4508. won't do this until the first write.)
  4509. ----------------------------
  4510. revision 41.2
  4511. date: 1993/11/24 20:12:34;  author: nox;  state: Exp;  lines: +1 -1
  4512. Use binary mode on tty's (under MiNT) to avoid extra ^M's.
  4513. =============================================================================
  4514. ***** getpw.c
  4515. ----------------------------
  4516. revision 41.2    
  4517. date: 1993/11/30 20:40:50;  author: nox;  state: Exp;  lines: +4 -2
  4518. Convert backslashes in the home directory in the passwd file, for backwards
  4519. compatibility.
  4520. =============================================================================
  4521. ***** lib.h
  4522. ----------------------------
  4523. revision 41.2    
  4524. date: 1993/11/30 18:51:48;  author: schwab;  state: Exp;  lines: +1 -1
  4525. Use new way to declare a function that doesn't return, since
  4526. the old way wasn't ANSI conforming.
  4527. =============================================================================
  4528. ***** libgcc2.c
  4529. ----------------------------
  4530. revision 41.2    
  4531. date: 1993/11/30 18:51:58;  author: schwab;  state: Exp;  lines: +35 -62
  4532. New entry points: L_builtin_new, L_caps_New and L_builtin_del are replaced
  4533. by L_op_new, L_new_handler and L_op_delete.
  4534. =============================================================================
  4535. ***** longlong.h
  4536. ----------------------------
  4537. revision 41.2    
  4538. date: 1993/11/30 18:52:22;  author: schwab;  state: Exp;  lines: +25 -24
  4539. Updated for GCC 2.5
  4540. =============================================================================
  4541. ***** include/assert.h
  4542. ----------------------------
  4543. revision 41.3    
  4544. date: 1994/01/09 09:02:56;  author: lux;  state: Exp;  lines: +4 -13
  4545. Make assert() macro more ANSI compliant by replacing the broken assert()
  4546. macro with what was previously given as assertval(), and remove
  4547. the assertval() macro.
  4548. ----------------------------
  4549. revision 41.2
  4550. date: 1993/11/30 18:50:46;  author: schwab;  state: Exp;  lines: +1 -1
  4551. Use new way to declare a function that doesn't return, since
  4552. the old way wasn't ANSI conforming.
  4553. =============================================================================
  4554. ***** include/compiler.h
  4555. ----------------------------
  4556. revision 41.2    
  4557. date: 1993/11/30 18:50:50;  author: schwab;  state: Exp;  lines: +10 -0
  4558. Use new way to declare a function that doesn't return, since
  4559. the old way wasn't ANSI conforming.
  4560. =============================================================================
  4561. ***** include/ioctl.h
  4562. ----------------------------
  4563. revision 41.2    
  4564. date: 1993/11/24 21:09:20;  author: schwab;  state: Exp;  lines: +1 -0
  4565. Add definition of B134.
  4566. =============================================================================
  4567. ***** include/math-68881.h
  4568. ----------------------------
  4569. revision 41.2    
  4570. date: 1993/11/30 18:50:58;  author: schwab;  state: Exp;  lines: +112 -48
  4571. Give inline functions const attribute instead of declaring as const.
  4572. Fix a bug in atan2 where the function from libpml gives a different result
  4573. on the arguments (0, -1).
  4574. =============================================================================
  4575. ***** include/minimal.h
  4576. ----------------------------
  4577. revision 41.2    
  4578. date: 1993/11/30 18:51:10;  author: schwab;  state: Exp;  lines: +4 -3
  4579. Use new way to declare a function that doesn't return, since
  4580. the old way wasn't ANSI conforming.
  4581. =============================================================================
  4582. ***** include/mintbind.h
  4583. ----------------------------
  4584. revision 41.3    
  4585. date: 1994/01/09 10:01:00;  author: pvt1-117;  state: Exp;  lines: +1 -1
  4586. Some changes for Lattice C.
  4587. ----------------------------
  4588. revision 41.2
  4589. date: 1993/11/24 20:50:10;  author: hohmuth;  state: Exp;  lines: +1 -1
  4590. Fix return type of Pwaitpid() for Pure C.
  4591. =============================================================================
  4592. ***** include/osbind.h
  4593. ----------------------------
  4594. revision 41.2    
  4595. date: 1994/01/09 10:01:28;  author: pvt1-117;  state: Exp;  lines: +3 -3
  4596. Some changes for Lattice C.
  4597. =============================================================================
  4598. ***** include/stdlib.h
  4599. ----------------------------
  4600. revision 41.3    
  4601. date: 1993/11/30 18:51:16;  author: schwab;  state: Exp;  lines: +3 -3
  4602. Use new way to declare a function that doesn't return, since
  4603. the old way wasn't ANSI conforming.
  4604. ----------------------------
  4605. revision 41.2
  4606. date: 1993/11/24 20:20:46;  author: pvt1-117;  state: Exp;  lines: +10 -0
  4607. Inline abs() and labs() for LCC.
  4608. =============================================================================
  4609. ***** include/support.h
  4610. ----------------------------
  4611. revision 41.3    
  4612. date: 1994/01/09 09:28:44;  author: schwab;  state: Exp;  lines: +1 -1
  4613. Rename buffindfile() to _buffindfile().
  4614. ----------------------------
  4615. revision 41.2
  4616. date: 1993/11/30 18:51:22;  author: schwab;  state: Exp;  lines: +2 -2
  4617. Use new way to declare a function that doesn't return, since
  4618. the old way wasn't ANSI conforming.
  4619. =============================================================================
  4620. ***** include/termios.h
  4621. ----------------------------
  4622. revision 41.2    
  4623. date: 1993/11/24 21:10:38;  author: schwab;  state: Exp;  lines: +1 -0
  4624. Add definition of B134.
  4625. =============================================================================
  4626. ***** include/unistd.h
  4627. ----------------------------
  4628. revision 41.2    
  4629. date: 1993/11/30 18:51:28;  author: schwab;  state: Exp;  lines: +1 -1
  4630. Use new way to declare a function that doesn't return, since
  4631. the old way wasn't ANSI conforming.
  4632. =============================================================================
  4633.  
  4634. ==end sync
  4635.  
  4636. mincl: ++jrb
  4637.     adjust for above
  4638.     -- add target for buffindf.o
  4639.     -- adjust names for op_new etc
  4640.  
  4641. ---------------------------- Patchlevel 97 ---------------------------
  4642.  
  4643. == sync with mntlib 43
  4644. ***** libgcc2.c
  4645. ----------------------------
  4646. revision 42.3    
  4647. date: 1994/02/10 11:38:42;  author: entropy;  state: Exp;  lines: +1 -1
  4648. Only use XFmode extended real floating point if XFLOAT_ENABLE is defined.
  4649. ----------------------------
  4650. revision 42.2
  4651. date: 1994/01/28 16:30:08;  author: schwab;  state: Exp;  lines: +1 -1
  4652. Don't try to use extended float mode (XFmode) with gcc before version 2.4.
  4653. Actually, this will also exclude gcc 2.4, since __GNUC_MINOR__ was
  4654. introduced just with gcc 2.5.
  4655. =============================================================================
  4656. ***** longlong.h
  4657. ----------------------------
  4658. revision 42.2    
  4659. date: 1994/01/28 16:30:30;  author: schwab;  state: Exp;  lines: +24 -25
  4660. Revert the last change, we don't need a register prefix.
  4661. =============================================================================
  4662. ***** include/assert.h
  4663. ----------------------------
  4664. revision 42.2    
  4665. date: 1994/02/12 00:01:04;  author: entropy;  state: Exp;  lines: +14 -14
  4666. Add back old statement-based assert macro, but now called __assert().
  4667. =============================================================================
  4668. ***** include/osbind.h
  4669. ----------------------------
  4670. revision 42.2    
  4671. date: 1994/02/10 08:05:26;  author: entropy;  state: Exp;  lines: +2 -2
  4672. Relax constraints from "r" to "g" on trap_14_wllwwwwwlw (used
  4673. by Flopfmt()).
  4674. =============================================================================
  4675.  
  4676. ==end sync
  4677.  
  4678. ==sync with mntlib 44
  4679. ***** a64l.c
  4680. ----------------------------
  4681. revision 43.2    
  4682. date: 1994/02/28 13:27:40;  author: entropy;  state: Exp;  lines: +0 -49
  4683. broke out functions
  4684. =============================================================================
  4685. ***** abort.c
  4686. ----------------------------
  4687. revision 43.2    
  4688. date: 1994/02/27 13:16:42;  author: entropy;  state: Exp;  lines: +9 -7
  4689. A possibly more ANSI/POSIX compliant abort().
  4690. =============================================================================
  4691. ***** abs.c
  4692. ----------------------------
  4693. revision 43.2    
  4694. date: 1994/02/28 13:33:08;  author: entropy;  state: Exp;  lines: +4 -9
  4695. broke out functions
  4696. =============================================================================
  4697. ***** atoi.c
  4698. ----------------------------
  4699. revision 43.2    
  4700. date: 1994/02/28 13:33:32;  author: entropy;  state: Exp;
  4701. NEW file, broken out from atol.c
  4702. =============================================================================
  4703. ***** atol.c
  4704. ----------------------------
  4705. revision 43.2    
  4706. date: 1994/02/28 13:34:10;  author: entropy;  state: Exp;  lines: +2 -8
  4707. broke out functions
  4708. =============================================================================
  4709. ***** chmod.c
  4710. ----------------------------
  4711. revision 43.2    
  4712. date: 1994/02/28 13:36:30;  author: entropy;  state: Exp;  lines: +2 -24
  4713. broke out functions
  4714. =============================================================================
  4715. ***** chown.c
  4716. ----------------------------
  4717. revision 43.2    
  4718. date: 1994/02/28 18:37:20;  author: entropy;  state: Exp;
  4719. NEW file, broken out from chmod.c
  4720. =============================================================================
  4721. ***** div.c
  4722. ----------------------------
  4723. revision 43.2    
  4724. date: 1994/02/28 13:36:30;  author: entropy;  state: Exp;  lines: +3 -32
  4725. broke out functions
  4726. =============================================================================
  4727. ***** fgetpos.c
  4728. ----------------------------
  4729. revision 43.2    
  4730. date: 1994/02/28 13:50:12;  author: entropy;  state: Exp;
  4731. NEW file, broken out from fsetpos.c
  4732. =============================================================================
  4733. ***** fopen.c
  4734. ----------------------------
  4735. revision 43.2    
  4736. date: 1994/02/28 13:36:30;  author: entropy;  state: Exp;  lines: +20 -146
  4737. broke out functions
  4738. =============================================================================
  4739. ***** fopen_i.c
  4740. ----------------------------
  4741. revision 43.2    
  4742. date: 1994/02/28 13:46:12;  author: entropy;  state: Exp;
  4743. NEW file, broken out from fopen.c
  4744. =============================================================================
  4745. ***** fputs.c
  4746. ----------------------------
  4747. revision 43.2    
  4748. date: 1994/02/28 13:36:30;  author: entropy;  state: Exp;  lines: +15 -26
  4749. broke out functions
  4750. =============================================================================
  4751. ***** freopen.c
  4752. ----------------------------
  4753. revision 43.2    
  4754. date: 1994/02/28 13:46:12;  author: entropy;  state: Exp;
  4755. NEW file, broken out from fopen.c
  4756. =============================================================================
  4757. ***** fseek.c
  4758. ----------------------------
  4759. revision 43.2    
  4760. date: 1994/02/28 13:36:30;  author: entropy;  state: Exp;  lines: +5 -41
  4761. broke out functions
  4762. =============================================================================
  4763. ***** fsetpos.c
  4764. ----------------------------
  4765. revision 43.2    
  4766. date: 1994/02/28 13:36:30;  author: entropy;  state: Exp;  lines: +17 -33
  4767. broke out functions
  4768. =============================================================================
  4769. ***** ftell.c
  4770. ----------------------------
  4771. revision 43.2    
  4772. date: 1994/02/28 13:49:16;  author: entropy;  state: Exp;
  4773. NEW file, broken out from fseek.c
  4774. =============================================================================
  4775. ***** getegid.c
  4776. ----------------------------
  4777. revision 43.2    
  4778. date: 1994/02/28 13:52:34;  author: entropy;  state: Exp;
  4779. NEW file, broken out from getuid.c
  4780. =============================================================================
  4781. ***** geteuid.c
  4782. ----------------------------
  4783. revision 43.2    
  4784. date: 1994/02/28 13:52:34;  author: entropy;  state: Exp;
  4785. NEW file, broken out from getuid.c
  4786. =============================================================================
  4787. ***** getgid.c
  4788. ----------------------------
  4789. revision 43.2    
  4790. date: 1994/02/28 13:52:34;  author: entropy;  state: Exp;
  4791. NEW file, broken out from getuid.c
  4792. =============================================================================
  4793. ***** getpid.c
  4794. ----------------------------
  4795. revision 43.2    
  4796. date: 1994/02/28 13:36:30;  author: entropy;  state: Exp;  lines: +5 -2
  4797. broke out functions
  4798. =============================================================================
  4799. ***** getppid.c
  4800. ----------------------------
  4801. revision 43.2    
  4802. date: 1994/02/28 13:50:12;  author: entropy;  state: Exp;
  4803. NEW file, broken out from getpid.c
  4804. =============================================================================
  4805. ***** getuid.c
  4806. ----------------------------
  4807. revision 43.2    
  4808. date: 1994/02/28 13:36:30;  author: entropy;  state: Exp;  lines: +5 -63
  4809. broke out functions
  4810. =============================================================================
  4811. ***** l64a.c
  4812. ----------------------------
  4813. revision 43.2    
  4814. date: 1994/02/28 13:27:04;  author: entropy;  state: Exp;
  4815. NEW file, broke out from a64l.c.
  4816. =============================================================================
  4817. ***** labs.c
  4818. ----------------------------
  4819. revision 43.2    
  4820. date: 1994/02/28 13:28:50;  author: entropy;  state: Exp;
  4821. NEW file, formerly in abs.c
  4822. =============================================================================
  4823. ***** ldiv.c
  4824. ----------------------------
  4825. revision 43.2    
  4826. date: 1994/02/28 13:42:52;  author: entropy;  state: Exp;
  4827. NEW file, broken out from div.c
  4828. =============================================================================
  4829. ***** lib.h
  4830. ----------------------------
  4831. revision 43.3    
  4832. date: 1994/02/28 14:03:04;  author: entropy;  state: Exp;  lines: +12 -0
  4833. add some prototypes
  4834. ----------------------------
  4835. revision 43.2
  4836. date: 1994/02/27 11:51:30;  author: entropy;  state: Exp;  lines: +1 -0
  4837. add _enoent() prototype.
  4838. =============================================================================
  4839. ***** puts.c
  4840. ----------------------------
  4841. revision 43.2    
  4842. date: 1994/02/28 13:47:38;  author: entropy;  state: Exp;
  4843. NEW file, broken out from fputs.c
  4844. =============================================================================
  4845. ***** regexp.c
  4846. ----------------------------
  4847. revision 43.2    
  4848. date: 1994/02/24 16:41:16;  author: schwab;  state: Exp;  lines: +1 -0
  4849. regcomp fails to compile "(a+|b)*" (from libtest/tregex.c).  The bug
  4850. is an uninitialized byte in reginsert.
  4851. =============================================================================
  4852. ***** rewind.c
  4853. ----------------------------
  4854. revision 43.2    
  4855. date: 1994/02/28 13:49:16;  author: entropy;  state: Exp;
  4856. NEW file, broken out from fseek.c
  4857. =============================================================================
  4858. ***** setegid.c
  4859. ----------------------------
  4860. revision 43.2    
  4861. date: 1994/02/28 13:52:34;  author: entropy;  state: Exp;
  4862. NEW file, broken out from getuid.c
  4863. =============================================================================
  4864. ***** seteuid.c
  4865. ----------------------------
  4866. revision 43.2    
  4867. date: 1994/02/28 13:52:34;  author: entropy;  state: Exp;
  4868. NEW file, broken out from getuid.c
  4869. =============================================================================
  4870. ***** setgid.c
  4871. ----------------------------
  4872. revision 43.2    
  4873. date: 1994/02/28 13:52:34;  author: entropy;  state: Exp;
  4874. NEW file, broken out from getuid.c
  4875. =============================================================================
  4876. ***** setregid.c
  4877. ----------------------------
  4878. revision 43.2    
  4879. date: 1994/02/28 13:52:34;  author: entropy;  state: Exp;
  4880. NEW file, broken out from getuid.c
  4881. =============================================================================
  4882. ***** setreuid.c
  4883. ----------------------------
  4884. revision 43.2    
  4885. date: 1994/02/28 13:52:34;  author: entropy;  state: Exp;
  4886. NEW file, broken out from getuid.c
  4887. =============================================================================
  4888. ***** setuid.c
  4889. ----------------------------
  4890. revision 43.2    
  4891. date: 1994/02/28 13:52:34;  author: entropy;  state: Exp;
  4892. NEW file, broken out from getuid.c
  4893. =============================================================================
  4894. ***** uidgid.c
  4895. ----------------------------
  4896. revision 43.2    
  4897. date: 1994/02/28 13:52:34;  author: entropy;  state: Exp;
  4898. NEW file, broken out from getuid.c
  4899. =============================================================================
  4900. ***** include/PatchLev.h
  4901. ----------------------------
  4902. revision 43.2    
  4903. date: 1994/02/15 20:33:52;  author: entropy;  state: Exp;  lines: +1 -1
  4904. -
  4905. =============================================================================
  4906. ***** include/ioctl.h
  4907. ----------------------------
  4908. revision 43.5    
  4909. date: 1994/02/27 09:42:40;  author: entropy;  state: Exp;  lines: +13 -8
  4910. Add some more TIOCM_* definitions
  4911. ----------------------------
  4912. revision 43.4
  4913. date: 1994/02/21 19:31:36;  author: entropy;  state: Exp;  lines: +29 -0
  4914. Catch up with MiNT's file.h:  Add cursor ioctl's and some missing
  4915. process ioctl's.
  4916. ----------------------------
  4917. revision 43.3
  4918. date: 1994/02/21 19:20:24;  author: entropy;  state: Exp;  lines: +9 -0
  4919. Add TIOCMGET (faked) and related bitmasks.
  4920. ----------------------------
  4921. revision 43.2
  4922. date: 1994/02/19 14:25:04;  author: entropy;  state: Exp;  lines: +11 -9
  4923. Added TIOCSDTR, TIOCCDTR and cleaned up a bit.
  4924. =============================================================================
  4925. ***** include/mintbind.h
  4926. ----------------------------
  4927. revision 43.2    
  4928. date: 1994/02/26 08:45:42;  author: entropy;  state: Exp;  lines: +8 -0
  4929. Add new MiNT system calls: Tmalarm(), Psigintr(), Suptime().
  4930. All are unofficial and subject to change.
  4931. =============================================================================
  4932. ***** include/ostruct.h
  4933. ----------------------------
  4934. revision 43.2    
  4935. date: 1994/02/22 17:47:58;  author: entropy;  state: Exp;  lines: +4 -0
  4936. Complete the _PARAM structure used with Initmous().
  4937. =============================================================================
  4938.  
  4939. New files: atoi.c chown.c fgetpos.c fopen_i.c freopen.c ftell.c getegid.c
  4940. geteuid.c getgid.c getppid.c l64a.c labs.c ldiv.c puts.c rewind.c setegid.c
  4941. seteuid.c setgid.c setregid.c setreuid.c setuid.c uidgid.c
  4942.  
  4943. == end sync
  4944.  
  4945. ---------------------------- Patchlevel 98 ---------------------------
  4946.  
  4947. falcon.h:: howard
  4948.     corrections from howard
  4949.